#実現したいこと
VBScriptで、とあるメッセージを出現後、シャットダウンを行いたいのですが、この後、シャットダウンが出来ません。
##出来ているソースコード
ここに言語を入力 ``` ここに言語を入力 ``` Option Explicit Dim num,x num = 2 Do While True num = MsgBox ("シャットダウンを行いますか?",16,"シャットダウン") If num = 1 Then Exit Do Loop MsgBox "シャットダウンを始めます",16,"はじめます" WScript.Sleep(10000) MsgBox "シャットダウン(仮)が完了しました。",16,"完了" WScript.Sleep(3000) MsgBox "警告:C:\Windows\system72\シャットダウンが出来ません!",16,"Windows" MsgBox "警告:C:\Windows\system72\シャットダウンが出来ません!",16,"Windows" WScript.Sleep(20) MsgBox "警告:C:\Windows\system72\シャットダウンが出来ません!",16,"Windows" WScript.Sleep(1000) MsgBox "警告:C:\Windows\system72\シャットダウンが出来ません!",16,"Windows" WScript.Sleep(1000) MsgBox "警告:C:\Windows\system72\シャットダウンに失敗しました!",16,"Windows" MsgBox "警告:C:\Windows\system72\シャットダウンに失敗しました!",16,"Windows" WScript.Sleep(1000) MsgBox "警告:C:\Windows\system72\シャットダウンに失敗しました!",16,"Windows" WScript.Sleep(2000) MsgBox "警告:C:\Windows\system72\このpcを消すことは、不可能です",16,"Windows" MsgBox "警告:C:\Windows\system72\シャットダウンすると、起動できなくなります!",16,"Windows" WScript.Sleep(1000) MsgBox "警告:C:\Windows\system72\pcをシャットダウンします",16,"Windows" MsgBox "警告:シャットダウン中",16,"Windows" CreateObject("WScript.Shell").Run "shutdown /s/t0", 0, False ```
このコードではどういう動作をするんでしょうか
最初に、シャットダウンしますか?という警告文が出て、キャンセルを押しても、ループします。okを押すと、シャットダウンを始めます。と警告文が出て、そこからは、okしか押せなくなっています。最後のokを押すと、終わりです。
① コードの前後の行に「```」を追加して、コードを見やすくしてください(コードを選んで「<code>」ボタンでも可)
② MsgBox の引数や返り値には数字を指定せず、定義済みの定数の組み合わせを記載してください(何をしているのかわかりにくいので)。
例)
49 = vbExclamation Or vbOKCancel
16 = vbCritical
最後の行の
`shutdown /a` は、シャットダウンの中止の意味なのでこれが怪しいように思えます。
即時シャットダウンするなら `shutdown /s /t 0` あたりじゃないかなと思います。
> とあるメッセージを出現後
具体的にどういう意味ですか?
ソースコードにも、あるように、シャットダウン失敗のメッセージです。
シャットダウン失敗のメッセージを出した後、シャットダウンしたいと言うことですか?
そうです。
いたずらプログラムですか?
悪戯はしませんけど、そうです。