![]() |
Tipp 0220
|
Windows-Restart-Dialog anzeigen
|
 |
|
Autor/Einsender: Datum: |
|
Detlev Schubert 05.04.2002 |
|
Entwicklungsumgebung: |
|
VB 5 |
|
|
Möchten Sie den Weitergabe- und Verpackungs-Assistenten modifizieren, dass der Anwender
zu einem Neustart von Windows aufgefordert wird, oder hat Ihre Anwendungen Systemeinstellungen
geändert, die erst nach einem Neustart von Windows wirksam werden?
|
Dann ist dieser Tipp mit der undokumentierten API-Funktion SHRestartSystemMB
genau das Richtige. Sie öffnet entsprechend des Parameters uFlags eine
spezielle MessageBox, mit der Frage, ob Windows neu gestartet oder heruntergefahren
werden soll. Durch das Betätigen der Befehlsschaltfläche 'Ja', wird die entsprechende
Aktion ausgeführt.
|
|
Code im Codebereich des Moduls |
|
|
Option Explicit
Declare Function GetVersionEx Lib "kernel32" Alias _
"GetVersionExA" (lpVersionInformation As _
OSVERSIONINFO) As Long
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Const VER_PLATFORM_WIN32s = 0
Const VER_PLATFORM_WIN32_WINDOWS = 1
Const VER_PLATFORM_WIN32_NT = 2
Public g_fIsWinNT As Boolean
Public Function IsWinNT() As Boolean
Dim osvi As OSVERSIONINFO
osvi.dwOSVersionInfoSize = Len(osvi)
GetVersionEx osvi
IsWinNT = (osvi.dwPlatformId = VER_PLATFORM_WIN32_NT)
End Function
|
|
|
Code im Codebereich der Form |
|
|
Option Explicit
Private Declare Function SHRestartSystemMB Lib "shell32" Alias _
"#59" (ByVal hOwner As Long, ByVal sPrompt As String, _
ByVal uFlags As Long) As Long
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Sub Form_Load()
g_fIsWinNT = IsWinNT
With cboRestart
.AddItem "1 - System herunterfahren"
.AddItem "2 - System neu starten"
.Text = "< Art des Dialogs auswählen >"
End With
End Sub
Private Sub cboRestart_Click()
Dim sPrompt As String
Dim uFlag As Long
sPrompt = txtRestartPrompt & vbCrLf
If Check1.Value = 0 Then sPrompt = ""
If g_fIsWinNT Then sPrompt = StrConv(sPrompt, vbUnicode)
Select Case cboRestart.ListIndex
Case -1
uFlag = Val(txtRestartPrompt.Text)
Case 0
uFlag = EWX_SHUTDOWN
Case 1
uFlag = EWX_REBOOT
End Select
If SHRestartSystemMB(Me.hWnd, sPrompt, uFlag) = vbYes Then End
End Sub
|
|
|
|
|
Windows-Version |
95 |
 |
|
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
VB-Version |
VBA 5 |
 |
|
VBA 6 |
 |
|
VB 4/16 |
 |
|
VB 4/32 |
 |
|
VB 5 |
 |
|
VB 6 |
 |
|
|
|
Download (3,5 kB)
|
Downloads bisher: [ 1200 ]
|
|
|