VBS Probleme mit SendKeys

Dine115

Cadet 2nd Year
Registriert
Dez. 2016
Beiträge
19
Hallo Zusammen,

wie der Titel bereits sagt habe ich ein Problem mit der SendKeys Methode bei VBS.

Ich möchte die Anwendung "KeyFreeze" (zum sperren von Tastatur und Maus) automatisch starten lassen mittels einem Skript.
Das Starten an sich bekomme ich hin, da dann allerdings noch mit einem Enter das Programm gestartet werden muss wollte ich im Skript den Sendkey {ENTER} hinterlegen.
Funzt alles recht schön bis zum Punkt mit dem Enter..
Egal wie ich rumprobiere und umstelle, ich bekomme den Sendkey nicht in die KeyFreeze-Anwendung geschickt.
Habe jetzt auch AppActivate eingebaut, um das richtige Fenster in den Fokus zu setzen, aber da jammert er dann immer vonwegen Typenkonflikt 'AppActivate' in Zeile 3. Da ich leider ein totaler Anfänger in Sachen VBS bin komme ich nicht weiter und hoffe auf Eure Hilfe... :rolleyes:

Danke im Vorraus..

Hier noch der Code wies aktuell aussieht:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("C:\Users\Loibl_N\Downloads\KeyFreeze.appref-ms")
AppActivate "KeyFreeze", True
SendKeys "{ENTER}", True

WScript.Quit
 
Laut https://msdn.microsoft.com/en-us/library/dyz95fhy(v=vs.90).aspx hat AppActivate keine 2 Argumente sondern niur eines.
Funktionen müssen die Argumente auch innerhalb von Klammern mitgegeben werden, so wie z.B. bei deine, WshShell.Run auch.
Also: AppActivate ("KeyFreeze")

Du solltest dein komplettes Skript auf weitere solch und ähnliche Fehler untersuchen.
 
Vielen Dank für deine schnelle Antwort.

Habe die Zeile mit AppActivate abgeändert aber bekomme dennoch die selbe Fehlermeldung.
Die oberen 2 Zeilen müssen korrekt sein, da sich die Anwendung ja startet. und die unteren 2 sollten laut Google auch so stimmen..

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("C:\Users\Loibl_N\Downloads\KeyFreeze.appref-ms")
AppActivate ("KeyFreeze")
SendKeys "{ENTER}", True

WScript.Quit
 
Dine115 schrieb:
Habe die Zeile mit AppActivate abgeändert aber bekomme dennoch die selbe Fehlermeldung.
Versuche es mal mit:
Code:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\Users\Loibl_N\Downloads\KeyFreeze.appref-ms"
WshShell.AppActivate "KeyFreeze"
Wscript.Sleep 1500
WshShell.SendKeys "{ENTER}", True
WScript.Quit
Meiner Erfahrung nach sendet SendKeys ohne Sleep den Tastendruck an das beim Starten des Skripts geöffnete Fenster ...
 
HominiLupus schrieb:
Funktionen müssen die Argumente auch innerhalb von Klammern mitgegeben werden, so wie z.B. bei deine, WshShell.Run auch.
Also: AppActivate ("KeyFreeze")
Das ist nicht ganz korrekt soweit es VBS betrifft.
Notice that the parentheses are omitted in the call when the Call statement isn't used.
https://msdn.microsoft.com/en-us/library/bx9ceb2w(v=vs.84).aspx

call WshShell.AppActivate("KeyFreeze") und
WshShell.AppActivate "KeyFreeze" machen im Endeffekt dasselbe ...
 
Sorry, bin offensichtlich kein VB/VBS/VBA/VB# Programmierer :)
 
Zurück
Oben