Mam taki skrypt, w którym chciałbym zapisać zdanie:“ala ma kota” w notatniku z ukrytym oknem tak żeby nie było nic widac.
Problem polega z 4 linijką
Dim oShell
Set oShell = WScript.CreateObject("WSCript.shell")
Call oShell.Run("NOTEPAD.EXE", 0, false)
AppActivate oShell
WScript.sleep 1000
oShell.SendKeys "ala ma kota"
WScript.sleep 1000
oShell.SendKeys "^s"
WScript.sleep 1000
oShell.SendKeys "ala.txt"
WScript.sleep 1000
oShell.SendKeys "~"
Set oShell = Nothing
Pisałem na postawie tych stron http://www.il.pw.edu.pl/~iap/IAPZ/vbkurs/iso2/rozkazy/sendkeys.htm
http://forum.dobreprogramy.pl/ukrywanie-okna-konsoli-t437343.html
matzu
(Tomek Matz)
23 Czerwiec 2011 21:36
#2
Poniżej lekko zmodyfikowany kod, który zadziała, ale tylko przy widocznym oknie notatnika.
Dim oShell
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "notepad", 1, false
WScript.Sleep 10000
oShell.AppActivate "Notatnik"
WScript.Sleep 1000
oShell.SendKeys "ala ma kota"
WScript.Sleep 1000
oShell.SendKeys "^s"
WScript.Sleep 1000
oShell.SendKeys "ala.txt"
WScript.Sleep 1000
oShell.SendKeys "~"
Funkcja AppActivate pozwala na przekazanie ID uruchomionego procesu jako parametru. Być może jeśli go przekażesz, to wtedy powyższy kod zadziała także przy niewidocznym oknie notatnika. Problem w tym, że uruchamiając proces przy użyciu metody Run nie uzyskasz ID procesu. Uzyskasz go uruchamiając proces przy użyciu metody Exec. Wtedy jednak nie będziesz mógł ukryć okna notatnika. Rozwiązaniem może się okazać napisanie skryptu WMI.
drobok
(Drobok)
24 Czerwiec 2011 06:36
#3
Ale tutaj pojawia się pytanie po co ci ten notatnik ? Robisz jakiś skrypt auto-logujący, a notatnik jako przykład ?
Są milion razy lepsze metody tworzenia txt. Np ta którą wyżej podał matzu