读书人

关机函数没法关闭windows 2003 sp2为什

发布时间: 2011-12-21 23:56:01 作者: rapoo

关机函数无法关闭windows 2003 sp2为什么?
第一次学vb.net想写一个自动关机的程序,在网上找到了
Private Declare Function ExitWindowsEx Lib "user32 " (ByVal uFlags As Integer, ByVal dwReserved As Integer) As Integer
这个函数,可是不知道为什么不能关闭计算机而是可以注销计算机,为什么呢?

[解决办法]
可以强制关机
[解决办法]
上面代码98下可以用,你试试下面的代码:
Shell( "shutdown.exe /s /f /t 0 ")
[解决办法]
你不会用搜索吗,.net区很多
[解决办法]
注销是不需要权限审核的,而关机则需要审核权限,所以你还要添加代码以修正
Private Sub AdjustToken()

Dim hdlProcessHandle As Long
Dim hdlTokenHandle As Long
Dim tmpLuid As LUID
Dim tkp As TOKEN_PRIVILEGES
Dim tkpNewButIgnored As TOKEN_PRIVILEGES
Dim lBufferNeeded As Long

hdlProcessHandle = GetCurrentProcess()
OpenProcessToken hdlProcessHandle,(TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), _
hdlTokenHandle

'Get the LUID for shutdown privilege.
LookupPrivilegeValue " ", "SeShutdownPrivilege ", tmpLuid
tkp.PrivilegeCount = 1 ' One privilege to set
tkp.Privileges(0).pLuid = tmpLuid
tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED

'Enable the shutdown privilege in the access token of this process.
AdjustTokenPrivileges hdlTokenHandle, False, tkp, Len(tkpNewButIgnored), _
tkpNewButIgnored, lBufferNeeded
End Sub

读书人网 >VB Dotnet

热点推荐