【API Function】


Windowsの終了を制御
 Visual Basicアプリケーションから、Windowsの終了を制御するには、_ ExitWindowsEx関数を使用します。
この関数は、Windowsの終了や再起動、ユーザーのログオフを制御できます。  こういった処理は、アプリケーションのセットアップ終了後等に使用します。 プロセスの強制終了も指定できますが、通常指定すべきではありません。


(ExitWindowsEx 関数等の使用方法)

 まずフォームのGeneralセクションに次の宣言コードを追加して下さい

    'APIの宣言
'=========================================================== 'ExitWindowsEx Windowsの終了を制御 '=========================================================== Private Declare Function ExitWindowsEx Lib "user32" (ByVal _ uFlags As Long, ByVal dwReserved As Long) As Long '-----------------------引数-------------------------------- '(uFlags) 制御の指定。以下のどれか '現在のユーザーをログオフ Private Const EWX_LOGOFF = 0& '電源を切っても大丈夫な状態にする Private Const EWX_SHUTDOWN = 1& 'システムを再起動 Private Const EWX_REBOOT = 2& '他のアプリケーションのプロセスを強制的に終了 Private Const EWX_FORCE = 4& '(dwReserved) 予約 '----------------------戻り値------------------------------- '関数が成功すると、0 以外の値が返り、 '関数が失敗すると、0 が返る

次に、フォームにCommandButtonを2つ配置して、 Command1_Click(),Command2_Click()プロシージャに次のコードを追加して下さい。

'再起動
Private Sub Command1_Click()
    Dim msg As String
    msg = "Windowsを終了し、再起動します" & Chr(10) & _
          "よろしいですか?"
    If MsgBox(msg, vbInformation + vbYesNo, "Windowsの終了") _
        = vbYes Then
    Call ExitWindowsEx(EWX_REBOOT, 0&)
    End If
End Sub

'終了
Private Sub Command2_Click()
    Dim msg As String
    msg = "Windowsを終了します" & Chr(10) & _
          "よろしいですか?"
    If MsgBox(msg, vbInformation + vbYesNo, "Windowsの終了") _
            = vbYes Then
    Call ExitWindowsEx(EWX_SHUTDOWN, 0&)
    End If
End Sub

 Command1をクリックすれば、システムをシャットダウンして再起動します。 この時他のプロセスで、編集されているものについて保存するかどうかの確認 のダイアログが表示されますが、システムのシャットダウンをやめることは できません。
 Command2をクリックすれば、システムを終了します。この時も上と同様な 手順を踏んだあと、システムを電源を切れる状態にします。
 ExitWindowsEx関数の1つ目の引数に、EWX_FORCE Or WX_SHUTDOWNの ようにEWX_FORCEとともに指定すると、現在実行中の他のプロセスが強制的に 終了します。


API Functionインデックス トップ


Copyright(C)1999 Tomoya. All rights reserved.