objShell 错误和关机
objShell error, and Shutdown
当我尝试打开它时出现此错误:
'objShell 800A01A8'
我不知道它是什么,但它很烦人,因为它之前有效。这是我的代码:
WScript.Sleep 0
Const wshYes = 6
Const wshNo = 7
Const wshYesNoDialog = 4
Const wshQuestionMark = 32
intReturn = objShell.Popup("Vil du annulere shutdown?", _
20, "Shutdown om 5 minutter!", wshYesNoDialog + wshQuestionMark)
If intReturn = wshYes Then
Wscript.Echo "Shutdown annuleret."
objShell.Run "C:\ProgramData\AutoShutdown\Annuler.bat"
End If
基本上我希望在 scheduled/planned 关机前 5 分钟执行此操作,询问您是否要取消 (cancel=annuller) 关机。
这是我遇到的另一个问题,它基本上必须执行 shutdown -a
,但由于我 非常 不擅长 VBScript,所以我失败了。如果用户选择 "Yes".
,目前使 VBScript 打开一个批处理文件只需执行 shutdpwn -a
所以,如果有人能告诉我怎么做,我会真的感激不尽:
- 使文件生效。
- 如果 "yes" 是选项,则将 VBScript 本身 运行 设为
shutdown -a
。
从这段代码中获得灵感:
Option Explicit
Dim Titre,ws,N,Question
Titre = "Arrêt automatique de l'ordinateur"
Set ws = CreateObject("wscript.Shell")
Do
Call Choisir()
Call Poser_question()
Loop
Sub Choisir()
Do
N = Trim(InputBox("Taper le nombre de secondes avant shutdown : ",Titre,"60"))
If Not IsNumeric(N) Then
ws.Popup "Vous devez taper un Nombre !","3",Titre,0+48
End if
Loop Until IsNumeric(N)
MsgBox "Vous avez choisi " & N & " seconde(s) avant le shutdown de votre PC !",64,Titre
Run_Shutdown(N)
End Sub
Sub Poser_question()
Question = MsgBox ("Vouliez-vous annuler le shutdown de votre PC ?",VBYesNO+VbQuestion,Titre)
If Question = VbYes then
Call Annuler_Shutdown()
Wscript.Quit
else
Wscript.Quit
end if
End Sub
Sub Run_Shutdown(N)
Dim Command,Execution
Command = "Cmd /c Shutdown -s -t "& N &" -c "& DblQuote("Sauvegarder votre travail car votre PC va s'arrêter dans "& N &" seconde(s)")
Execution = ws.run(Command,0,True)
End sub
Sub Annuler_Shutdown()
Dim Command,Execution
Command = "Cmd /c Shutdown -a"
Execution = ws.run(Command,0,True)
End Sub
'*****************************************************************
'Fonction pour ajouter des guillemets dans une variable
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'*****************************************************************
当我尝试打开它时出现此错误:
'objShell 800A01A8'
我不知道它是什么,但它很烦人,因为它之前有效。这是我的代码:
WScript.Sleep 0
Const wshYes = 6
Const wshNo = 7
Const wshYesNoDialog = 4
Const wshQuestionMark = 32
intReturn = objShell.Popup("Vil du annulere shutdown?", _
20, "Shutdown om 5 minutter!", wshYesNoDialog + wshQuestionMark)
If intReturn = wshYes Then
Wscript.Echo "Shutdown annuleret."
objShell.Run "C:\ProgramData\AutoShutdown\Annuler.bat"
End If
基本上我希望在 scheduled/planned 关机前 5 分钟执行此操作,询问您是否要取消 (cancel=annuller) 关机。
这是我遇到的另一个问题,它基本上必须执行 shutdown -a
,但由于我 非常 不擅长 VBScript,所以我失败了。如果用户选择 "Yes".
shutdpwn -a
所以,如果有人能告诉我怎么做,我会真的感激不尽:
- 使文件生效。
- 如果 "yes" 是选项,则将 VBScript 本身 运行 设为
shutdown -a
。
从这段代码中获得灵感:
Option Explicit
Dim Titre,ws,N,Question
Titre = "Arrêt automatique de l'ordinateur"
Set ws = CreateObject("wscript.Shell")
Do
Call Choisir()
Call Poser_question()
Loop
Sub Choisir()
Do
N = Trim(InputBox("Taper le nombre de secondes avant shutdown : ",Titre,"60"))
If Not IsNumeric(N) Then
ws.Popup "Vous devez taper un Nombre !","3",Titre,0+48
End if
Loop Until IsNumeric(N)
MsgBox "Vous avez choisi " & N & " seconde(s) avant le shutdown de votre PC !",64,Titre
Run_Shutdown(N)
End Sub
Sub Poser_question()
Question = MsgBox ("Vouliez-vous annuler le shutdown de votre PC ?",VBYesNO+VbQuestion,Titre)
If Question = VbYes then
Call Annuler_Shutdown()
Wscript.Quit
else
Wscript.Quit
end if
End Sub
Sub Run_Shutdown(N)
Dim Command,Execution
Command = "Cmd /c Shutdown -s -t "& N &" -c "& DblQuote("Sauvegarder votre travail car votre PC va s'arrêter dans "& N &" seconde(s)")
Execution = ws.run(Command,0,True)
End sub
Sub Annuler_Shutdown()
Dim Command,Execution
Command = "Cmd /c Shutdown -a"
Execution = ws.run(Command,0,True)
End Sub
'*****************************************************************
'Fonction pour ajouter des guillemets dans une variable
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'*****************************************************************