首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

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

2011-12-21 
关机函数无法关闭windows 2003 sp2为什么?第一次学vb.net想写一个自动关机的程序,在网上找到了PrivateDecl

关机函数无法关闭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

热点排行