【问题标题】:How to shutdown a locked PC (vb.net)?如何关闭锁定的 PC (vb.net)?
【发布时间】:2010-09-13 10:50:14
【问题描述】:

在 vb.net 中关闭电脑很容易:

Process.Start("shutdown", "-s -t 00")

除非用户锁定了电脑,否则上述操作会失败。

如何在 vb.net 中解决这个问题?如何关闭锁定的电脑?

程序将在本地运行。

【问题讨论】:

    标签: vb.net shutdown locked


    【解决方案1】:
    System.Diagnostics.Process.Start("shutdown", "-s -f -t 00")
    

    这将在 00 毫秒内以静默方式强制关机。您必须调用每个进程的代码是多余的,请使用上面的代码。只需在顶部输入System.Imports.IO 即可。

    【讨论】:

    • 所以你建议,强制标志就足够了,好吧可能手头没有这样的系统,但你能提供一个 vlid 代码 sn-p 而不是说“只做一个 System.Imports.IO在顶部”,并且可能简短地用“上面的一堆代码”来描述您的意思,因为 qnaswer 会动态更改顺序,并且提供多行代码的人可能不太友好地接受它。谢谢。
    【解决方案2】:

    你可以P/Invoke ExitWindowsEx

    那里有一个C#的例子,但我相信你可以转换它。

    【讨论】:

    • 哇,一定有更简单的方法!
    • 这很简单——调整进程级别令牌,然后调用退出窗口。它所做的只是赋予程序关闭的权利。您可以动态地将其赋予该过程。这个例子是一个你可以使用的整洁的小类。
    【解决方案3】:

    我认为您正在寻找“-f”标志来强制关闭。

    引用来自 MS KB article当计算机被锁定时,如果你运行 Shutdown.exe 命令和 -f 选项,你可以关闭计算机。

    【讨论】:

    • -f 标志绝对不是要走的路,因为它旨在强制所有程序不正常地关闭,因此在重新启动时可能会出现问题。例如,在我的 PC 上,它会在重新启动时导致 MS Security Essentials 服务出现问题。
    【解决方案4】:

    为了后代:

    Dim ms As ManagementScope = New ManagementScope("\\LocalHost")
        ms.Options.EnablePrivileges = True
    
        Dim oq As ObjectQuery = New ObjectQuery("SELECT * FROM Win32_OperatingSystem")
        Dim query1 As ManagementObjectSearcher = New ManagementObjectSearcher(ms, oq)
        Dim queryCollection1 As ManagementObjectCollection = query1.Get()
    
        For Each mo As ManagementObject In queryCollection1
            Dim ss As String() = {"5"}
            mo.InvokeMethod("Win32Shutdown", ss)
        Next
    

    谷歌“Win32Shutdown”了解更多可用标志的详细信息(ss 以上)。 5 是在电脑被锁定时强制关闭,但它比 shutdown /f 更优雅,并且在重启时似乎不会导致程序或服务出现任何问题。

    【讨论】:

    • PS:请将此标记为“已接受的解决方案”(使用您的答案旁边的复选标记),以便此问题不再显示为“未回答”。
    【解决方案5】:

    查看CodeProject 上的这篇文章,该文章说明了如何强制计算机远程关闭,让您了解如何执行此操作。

    【讨论】:

    • 只是远程调用关机?
    【解决方案6】:

    使用System.Management 命名空间比启动外部工具更优雅。这是一个 C# 代码示例,应该很容易转换:

    http://www.dreamincode.net/forums/topic/33948-how-to-shut-down-your-computer-in-c%23/

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多