再起動実行しない

解決


おかむ  2005-11-23 00:29:39  No: 128112

このページで調べた再起動法を実行しようとしたのですがうまく行きません。
標準モジュールに
Public Declare Function ExitWindowsEx Lib "USER32" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const EXIT_SAIKIDOU = 2
フォーム上コマンドボタン13に
Private Sub Command13_Click()
  ExitWindowsEx EXIT_SAIKIDOU, 2
End Sub

何か間違っているところありますか?


VBSでは  2005-11-23 00:33:30  No: 128113

Set objSystemSet = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}").InstancesOf("Win32_OperatingSystem")

For Each objSystem In objSystemSet
        objSystem.Win32Shutdown 2
Next

拡張子をvbsにしてwクリック


もげ  2005-11-23 00:59:40  No: 128114

http://madia.world.coocan.jp/vb/API/VBWINEXIT.htm
ですかね。
Win9xなら間違いじゃないのですが、
WinNT/Win2000/WinXPの場合は、特権が必要です。
http://www.galliver.co.jp/writing/msdn/msdn09/


おかむ  2005-11-23 01:11:20  No: 128115

>VBSでは
すみませんVBSの知識がないので良く分からないです。
VB6.0で作成してEXEファイルにしようとしてます。

>もげさん
そうです。ここです。http://madia.world.coocan.jp/vb/API/VBWINEXIT.htm
自分はXPですんでだめですね・・・
特権?何かインストールしなきゃいけないんですか?


Blue  2005-11-23 01:24:36  No: 128116

MSDN-PSDK-ExitWindowsEx http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpsysinf/html/_win32_exitwindowsex.asp

EWX_REBOOT(=EXIT_SAIKIDOU)

のところ参考にしてみては。


もげ  2005-11-23 01:57:58  No: 128117

>特権?何かインストールしなきゃいけないんですか?

前述
http://www.galliver.co.jp/writing/msdn/msdn09/
を最後まで読んでからのご発言ですか(--;?


VBSでは  2005-11-23 02:07:51  No: 128118

そうでしょうねぇ〜
環境がかかれていなかったもので、VBSで回答したまでです。
まぁ、捨て置いてください


おかむ  2005-11-23 04:47:22  No: 128119

>VBSでは
すみませんこちらの説明不足でした
>もげさん

モジュール
Declare Function ExitWindowsEx Lib "user32.dll" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const EWX_REBOOT = &H2&

フォーム
Private Sub Command13_Click()
    Dim lngShutdownFlag       As Long
    Dim lngWin32apiResultCode As Long
    lngWin32apiResultCode = _
        ExitWindowsEx(EWX_REBOOT, &H2&)
End Sub
にしました。何がいけないんでしょうか?


おかめ  2005-11-23 04:56:27  No: 128120

もげさんが張ったページにぜんぶのってます。
アクセストークンについてもソースも・・


おかむ  2005-11-23 05:11:48  No: 128121

>おかめさん
↑のコードはもげさんが張ったページを見ての結果なんです。
アクセストークン調べました。
Private Declare Function OpenProcessToken Lib "advapi32" _
    (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _
     TokenHandle As Long) As Long
'  トークン内を検索する
Private Const TOKEN_QUERY = &H8
'  アクセス権の有効/無効を設定する
Private Const TOKEN_ADJUST_PRIVILEGES = &H20


abu  2005-11-23 05:37:41  No: 128122

>OpenProcessToken
あなたのソースの何処で使われているの?
宣言しただけじゃ何も変わらないよ。
もっとリンク先を最後までみたら?


おかむ  2005-11-24 21:52:30  No: 128123

解決しました。
皆さんお騒がせいたしました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加