Sendkeys an "unsichtbare" Programme
Hallo euch allen!
Ich habe ein Problem mit VBScript und zwar möchte ich sendkeys Befehle an ein Dos Programm schicken, dass vorher mit dem Run Befehl im "unsichtbaren" Modus gestartet wurde, geht das??? Bin schon seit Stunden im Internet unterwegs, hab aber nichts brauchbares soweit gefunden! Schonmal Danke für alle Ideen!
Hier mein Code bis jetzt:
Set fs = CreateObject("Wscript.Shell")
'Startet das Dos Programm im Hintergrund und übermittelt einen 'Parameter
fs.run "wshget.exe -e C:\Test.exe" , 0
'Ermittelt die Prozessid von dem Programm
Set wmi = GetObject("winmgmts:")
Set system = wmi.instancesOf("win32_process")
for each process in system
if lcase(process.name)="wshget.exe" then
wshget = process.processid (0)
next
'Schaltet das "unsichtbare" Programm in den Vordergrund
fs.AppActivate wshget
'Da das Programm eine InputBox anzeigt, sende ich die Eingabe an 'die InputBox per Sendkeys
fs.sendkeys "123"
wscript.sleep 1000
fs.AppActivate wshget
'Bestätigt die InputBox durch drücken der "Enter" Taste! Ab 'jetzt läuft das Programm automatisch weiter!
fs.sendkeys "{ENTER}"
Da der Endbenutzer davon aber nichts mitbekommen soll, muss das Programm unsichtbar laufen und sendkeys anehmen! Das Problem ist, dass die sendkeys auf dem Desktop landen und nicht im Programm(wenn das Programm sichtbar gestartet wird, gehts wunderbar!)
Ich danke allen, denen igendetwas dazu einfällt!
Viele Grüße
Euer VBScriptler
Antwort schreiben
Antwort 1 von xxxxxxxxxxxxxxx vom 13.10.2019, 17:02 Options
SendKeys ist sehr mit Vorsicht zu genießen - du weißt nie, was es anrichtet. Sogar innerhalb der Applikation gibts mitunter "unerklärliche" Seiteneffekte. Habe früher auch versucht, Probleme mit SendKeys zu lösen und meine Nachricht lautet: Finger weg.
Antwort 2 von VBScriptler vom 13.10.2019, 17:21 Options
Ich weiß! :)
Gibt es trotzdem noch jemanden der eine Idee hat? Oder ist es irgendwie möglich einem Programm Befehle zu erteilen, z.B. über die Exec Methode?
Danke für eure Mühen!
Antwort 3 von xxxxxxxxxxxxxxx vom 13.10.2019, 17:24 Options
Wenn es für dein Programm keine COM-Schnittstelle oder VB-Bibliothek gibt, weiß ich auch nicht weiter, es sei denn, du programmierst selbst eine Schnittstelle. Gibt da ja mehrere Möglichkeiten.