VBScript arbetar med monterade enheter (4 / 6 steg)
Steg 4: Lägga till vad vi lärt oss i script
Här är koden för disableing enheten:
Ange shellobj = CreateObject("WScript.Shell")
shellobj.Run "cmd"
WScript.Sleep 200
shellobj.SendKeys "/d mountvol g:\ {in}"
_
Du bör förstå allt detta så långt från vår lilla tester
Här är koden för att öppna en bild som han ville och Stäng fönstret första befalla snabb:
WScript.Sleep 2000
shellobj.SendKeys "c:\3.jpg{enter}exit{enter"}
_
Som du ser du kan lägga till flera kommandon till en rad som fönstret är fortfarande öppen. Det kommer att vänta tills det sista kommandot har utförts innan du påbörjar nästa.
Här är koden för pop-up rutor så att skriptet körs tills du återaktivera enheten:
Dim MyVar
MyVar = 2
medan myvar = 2
MyVar = MsgBox ("vänd enheten tillbaka på", 65, "Aktivera enheten tillbaka")
wend
MsgBox ("vi kommer nu aktivera hård driva tillbaka!")
_
Observera att genom att göra variabeln Myvar = till 2 wich är värdet av knappen Avbryt på meddelanderutan kommer vi att köra en kontinuerlig slinga tills ok-knappen trycks. Detta tvingar oss att klicka Ja för att avsluta skriptet. Först efter ja skjuts gör myval värdet ändras till 1 och låta öglan för att brytas strider därför fortsätter skriptet och sedan kasta upp messagebox säger enheten kommer att vara reenabled.
Nu om du kommer ihåg från innan det brukar göra det nästa comand tills det sista kommandot har avslutats så tills ok-knappen trycks på messagebox kommer att inte fullföljas.
Ja vi bara kunde använda meddelanderuta för att återaktivera enheten men då om du inte vill det aktiverat ännu men råkade klicka ok finns det inga skyddsåtgärder. Med Ja/ingen box har du inget annat val än att klicka på Ja.
Vi skulle kunna bli av med de extra messagebox men jag gillar att ha en bekräftelse på att åtgärden vidtas.
Nu får vi där remontering, märkning och sanering sker. Du tror väl det är bara rakt fram men inte. Om du märker varje gång vi vill placera en retur eller TABB-tangenten i vår sendkeys linje typ vi bara (ENTER). Anledningen till detta är eftersom det ser {och} som specialtecken. Därför om vi använda cutrly parenteser som de trycks i guid {c0ea045c-56fe-11de-8a5a-001111cb3c76} skulle sendkeys-kommandot esentually tryck på knappen c0ea045c-56fe-11de-8a5a-001111cb3c76. Eftersom det finns ingen sådan knapp vårt skript skulle krascha och sedan ingen remounted enhet för oss.
Så hur får vi runt det? Svaret är väl ironiskt i parentes själva. Sedan något thtat är inom de öppna och stänga klammerparenteserna skickas esentially som pressade nyckel vi bara sätta fästet vi vill ha inne de öppna och stänga klammerparenteserna. Så en öppen skulle vara {{} och en nära skulle vara {{}}
Så nu i slutet av vår kod skulle se ut så här:
shellobj.Run "cmd"
WScript.Sleep 200
shellobj.SendKeys "mountvol g: \\?\Volume{{}c0ea045c-56fe-11de-8a5a-001111cb3c76{}}\{enter}label g: HDD1e {in} taskkill f im rundll32.exe{enter}exit{enter}"