请各位大虾,代码中怎么样实现自动关机和自动重启
解决方案 »
- VB生成的exe文件可以把输入返回吗?
- 各位大侠,帮忙看一下一个简单的问题(关于数据库添加记录)
- 这句话帮忙翻译下(一定给分)
- 我使用了ADODC控件进行数据库操作,请问软件打包时把这个控件文件一起打包就可以使用了吧?
- 调用窗体
- 写注册表string值,在xp下不管用问题
- 出现”连接被强制拒绝“错误提示,是为什么啊
- 用VB开发的sniffer,有兴趣来看~2
- 请问,在vb中怎么对注册表进行操作?
- 我用datagrid控件顯示SQL數据.10万條記錄以上就非常慢.有沒有方案解決.聽說可以分頁處理,但出現問題,難道vb真的不如pb嗎.我做了個商業軟件,就是這個問題沒解決,顯示總是比pb慢,客戶不接受,我真的很慘.請看.
- 不能引用ADO的 ADODB.Stream?
- 消息WM_SIZE用SendMessage发送,为何不起作用
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Declare Function GetCurrentProcess Lib "kernel32" () As Long
Public Declare Function LookupPrivilegevalue Lib "advapi32.dll" Alias "LookupPrivilegevalueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
Public Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long
Public Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Public Const ANYSIZE_ARRAY = 1
Public Const TOKEN_ADJUST_PRIVILEGES = &H20
Public Const TOKEN_QUERY = &H8
Public Const SE_PRIVILEGE_ENABLED = &H2
Public Type LUID
LowPart As Long
HighPart As Long
End Type
Public Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End Type
Public Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type
Type LARGE_INTEGER
LowPart As Long
HighPart As Long
End Type
Sub AdjustTokenPrivilegesForNT() '使NT关机的副程序
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
LookupPrivilegevalue "", "SeShutdownPrivilege", tmpLuid
tkp.PrivilegeCount = 1
tkp.Privileges(0).pLuid = tmpLuid
tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
AdjustTokenPrivileges hdlTokenHandle, False, tkp, Len(tkpNewButIgnored), tkpNewButIgnored, lBufferNeeded
End Sub
Private Sub cmdCancel_Click()
AdjustTokenPrivilegesForNT
ExitWindowsEx 1, 0'关机
End Sub