Public Sub AddTokenforNT() 'Windows NT 下调用ExitWindowEx 涵数需要特权 Dim hToken As Long Dim tkp As TOKEN_PRIVILEGES If GetWindowsInfo Then Call OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken) LookupPrivilegeValue vbNullString, "SeShutdownPrivilege", tkp.Privileges(0).pLuid tkp.PrivilegeCount = 1 tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED AdjustTokenPrivileges hToken, False, tkp, 0, ByVal 0, 0 End If End Sub
打开: ShellExecuteEx 0, "Open", "c:\win95\readme.txt", "", "", SW_SHOW SW_SHOW是否可以替换成下面的各个,有何效果,自己去试了。 Public Const SW_ERASE=&H4 Public Const SW_HIDE=0 Public Const SW_MAXIMIZE=3 Public Const SW_MINIMIZE=6 Public Const SW_SHOW=5
'Windows NT 下调用ExitWindowEx 涵数需要特权
Dim hToken As Long
Dim tkp As TOKEN_PRIVILEGES
If GetWindowsInfo Then
Call OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken)
LookupPrivilegeValue vbNullString, "SeShutdownPrivilege", tkp.Privileges(0).pLuid
tkp.PrivilegeCount = 1
tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
AdjustTokenPrivileges hToken, False, tkp, 0, ByVal 0, 0
End If
End Sub
打开:
ShellExecuteEx 0, "Open", "c:\win95\readme.txt", "", "", SW_SHOW SW_SHOW是否可以替换成下面的各个,有何效果,自己去试了。
Public Const SW_ERASE=&H4
Public Const SW_HIDE=0
Public Const SW_MAXIMIZE=3
Public Const SW_MINIMIZE=6
Public Const SW_SHOW=5
或用 枚举来找要关的窗口句柄 (可通过条件模糊标题得到)
然后用sendmessage 发一条消息关掉它。