2015-07-26 4 views
1

Истина: я совершенно новичок в этой работе скриптов и достиг концевого прохода. Я пытаюсь написать сценарий, который не только создаст ярлык на рабочем столе пользователя, но когда пользователь нажмет на значок, я хочу, чтобы их спросили, действительно ли они хотят выключить компьютер и дали возможность отменить выключения или продолжения работы. До сих пор я искал до конца своего учебника и google. Я могу добиться создания значка и выполнить его на рабочем столе Windows, но не с моими специальными промежуточными действиями. Я просто не знаю, как сделать вызов значок обратно в сценарий для выбора случая рутина ... Извините, если это немного грязный Смотрите ниже:VBScript: Получение ярлыков на рабочем столе для выполнения специальных действий.

result = MsgBox ("Would you really like to Shutdown?", vbYesNo, "Shutdown?") 
Set Shell = CreateObject("WScript.Shell") 
DesktopPath = Shell.SpecialFolders("Desktop") 

' Add Shutdown link to the desktop 
Set linkShutdown = Shell.CreateShortcut(DesktopPath & "\Shutdown.lnk") 
linkShutdown.Description = "Shutdown the computer" 
linkShutdown.IconLocation = ("%SystemRoot%\system32\SHELL32.dll,27")  
linkShutdown.TargetPath = "shutdown" 
linkShutdown.WindowStyle = 1 
linkShutdown.WorkingDirectory = "%windir%" 
linkShutdown.Save 

Select Case result 
    Case vbYes 
     MsgBox("Shutting down ...") 
     Dim objShell 
     Set objShell = WScript.CreateObject("WScript.Shell") 
     objShell.Run "C:\WINDOWS\system32\shutdown.exe -r -t 0" 
    Case vbNo 
     MsgBox("Ok") 
End Select 
+0

Я запутался. Почему вы создаете ярлык для выключения компьютера, когда ваш скрипт делает это самостоятельно? – Bond

ответ

0
Set x = CreateObject("Shell.Application") 
x.ShutdownWindows 

дает вам диалог «Отключение Windows».

У вас есть два сценария в одном файле, который вы запускаете последовательно. Поместите их в два файла.

1

Попробуйте VBScript: Ask2Shutdown.vbs

Option Explicit 
Dim MyScriptPath 
MyScriptPath = WScript.ScriptFullName 
Call Shortcut(MyScriptPath,"Shutdown the computer") 
Call AskQuestion() 
'********************************************************************************************** 
Sub Shortcut(PathApplication,Name) 
    Dim objShell,DesktopPath,objShortCut,MyTab 
    Set objShell = CreateObject("WScript.Shell") 
    MyTab = Split(PathApplication,"\") 
    If Name = "" Then 
     Name = MyTab(UBound(MyTab)) 
    End if 
    DesktopPath = objShell.SpecialFolders("Desktop") 
    Set objShortCut = objShell.CreateShortcut(DesktopPath & "\" & Name & ".lnk") 
    objShortCut.TargetPath = Dblquote(PathApplication) 
    ObjShortCut.IconLocation = "%SystemRoot%\system32\SHELL32.dll,-28" 
    objShortCut.Save 
End Sub 
'********************************************************************************************** 
Sub AskQuestion() 
    Dim Question,Msg,Title 
    Title = "Shutdown the computer" 
    Msg = "Are you sure to shutdown the computer now ?"& Vbcr &_ 
    "If yes, then click [YES] button "& Vbcr &_ 
    "If not, then click [NO] button" 
    Question = MsgBox (Msg,VbYesNo+VbQuestion,Title) 
    If Question = VbYes then 
     Call Run_Shutdown(30) 
    else 
     WScript.Quit() 
    End if 
End Sub 
'********************************************************************************************** 
Function DblQuote(Str) 
    DblQuote = Chr(34) & Str & Chr(34) 
End Function 
'********************************************************************************************** 
Sub Run_Shutdown(N) 
    Dim ws,Command,Execution 
    Set ws = CreateObject("wscript.Shell") 
    Command = "Cmd /c Shutdown -s -t "& N &" -c "& DblQuote("Save your work because your PC will shut down in "& N &" seconds") 
    Execution = ws.run(Command,0,True) 
End sub 
'********************************************************************************************** 
Смежные вопросы