安装部署问题 如何实现在安装完成后重启PC

bestvcer 2009-04-02 07:38:58
安装部署问题

制作安装程序,如何实现在安装完成后重启PC?

谢谢!
...全文
49 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
outou 2009-04-03
  • 打赏
  • 举报
回复
下面的代码是关于,关机,重启等的。你可以参考一下。http://www.bingning.net

<System.Runtime.InteropServices.DllImport("kernel32.dll")> _
Private Shared Function GetCurrentProcess() As IntPtr
End Function

<System.Runtime.InteropServices.DllImport("advapi32.dll", SetLastError:=True)> _
Shared Function OpenProcessToken(ByVal ProcessHandle As IntPtr, _
ByVal DesiredAccess As Integer, _
ByRef TokenHandle As IntPtr) As Boolean
End Function

<System.Runtime.InteropServices.DllImport("advapi32.dll", SetLastError:=True, _
CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
Shared Function LookupPrivilegeValue(ByVal lpSystemName As String, _
ByVal lpName As String, _
ByRef lpLuid As Long) As Boolean
End Function

<System.Runtime.InteropServices.StructLayout( _
System.Runtime.InteropServices.LayoutKind.Sequential, Pack:=1)> _
Private Structure TOKEN_PRIVILEGES
Public PrivilegeCount As Integer
Public Luid As Long
Public Attributes As Integer
End Structure

<System.Runtime.InteropServices.DllImport("advapi32.dll", SetLastError:=True)> _
Private Shared Function AdjustTokenPrivileges(ByVal TokenHandle As IntPtr, _
ByVal DisableAllPrivileges As Boolean, _
ByRef NewState As TOKEN_PRIVILEGES, _
ByVal BufferLength As Integer, _
ByVal PreviousState As IntPtr, _
ByVal ReturnLength As IntPtr) As Boolean
End Function

Public Sub AdjustToken()
Const TOKEN_ADJUST_PRIVILEGES As Integer = &H20
Const TOKEN_QUERY As Integer = &H8
Const SE_PRIVILEGE_ENABLED As Integer = &H2
Const SE_SHUTDOWN_NAME As String = "SeShutdownPrivilege"

If Environment.OSVersion.Platform <> PlatformID.Win32NT Then
Return
End If

Dim procHandle As IntPtr = GetCurrentProcess()

Dim tokenHandle As IntPtr
OpenProcessToken(procHandle, _
TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, tokenHandle)
Dim tp As New TOKEN_PRIVILEGES()
tp.Attributes = SE_PRIVILEGE_ENABLED
tp.PrivilegeCount = 1
LookupPrivilegeValue(Nothing, SE_SHUTDOWN_NAME, tp.Luid)
AdjustTokenPrivileges(tokenHandle, False, tp, 0, IntPtr.Zero, IntPtr.Zero)
End Sub

bestvcer 2009-04-03
  • 打赏
  • 举报
回复
哪位大侠可以回答我

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧