使用Shell函数函数。
Shell函数是VB中的内部函数,它负责执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的进程ID,若不成功,则会返回0。
Shell的语法:Shell(PathName[,WindowStyle])。
PathName 为必需参数。类型为String,它指出了要执行的程序名,以及任何需要的参数或命令行变量,也可以包括路径名。
WindowStyle为可选参数。Integer类型,指定在程序运行时窗口的样式。WindowStyle有以下这些值。
示例,打开当前程序所在目录下的TEMP.EXE文件:
Dim a As Integer
a = Shell(App.Path &"\TEMP.EXE")
在被调用界面中增加一个Public函数例如:
Form2
Command1_Click()事件
增加方法: public function pubClick()
command1_Click
end Function
Form1窗体的Load中增加
Form2.pubClick
Shell () 函数额可以调用第三方程序。 shutdown是windows管理关机的程序,直接调用Shell "cmd.exe /c shutdown -s -t 10 -c"
另外,你说要别的办法,用windows API: ExitWindowsEx
ExitWindowsEx需要获取权限
主要代码:
Private Sub Form_Load()
Dim hProcessHandle As Long
Dim hTokenHandle As Long
Dim tmpLuid As LUID
Dim tkpNew As TOKEN_PRIVILEGES
Dim tkpPrevious As TOKEN_PRIVILEGES
Dim lBufferNeeded As Long
'获取当前进程的一个伪句柄
hProcessHandle = GetCurrentProcess()
OpenProcessToken hProcessHandle, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hTokenHandle
LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid
tkpNew.PrivilegeCount = 1
tkpNew.TheLuid = tmpLuid
tkpNew.Attributes = SE_PRIVILEGE_ENABLED
lBufferNeeded = 0
'允许当前应用程序有关闭 *** 作系统的权限
AdjustTokenPrivileges hTokenHandle, False, tkpNew, Len(tkpPrevious), tkpPrevious, lBufferNeeded
End Sub
Private Sub Command1_Click()
'重新启动计算机
ExitWindowsEx EWX_REBOOT, 0
End Sub
Private Sub Command2_Click()
'关闭计算机
ExitWindowsEx EWX_FORCE Or EWX_SHUTDOWN, 0
End Sub
Private Sub Command4_Click()
ExitWindowsEx EWX_LOGOFF, 0
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)