meisterqui-gonjinn
Goto Top

Send Keys übergeben

Servus,

ich habe ein Problem mit Sendkeys etwas zu übergeben. Ich möchte, wenn sich die cmd mit dem bestimmten User geöffnet hat weiterhin mit Sendkeys Befehle übergeben. Leider weiß ich nicht wie.


Dim user
Dim pw
Dim remote_pc
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")

user=InputBox("Benutzername (domäne\username):", "Username")
pw=InputBox("Passwort:", "Passwort")
remote_pc=InputBox("Bitte geben Sie den Remote-PC ein:", "PC")

oShell.Run "runas /noprofile /user:" & user & " cmd"
WScript.Sleep 100

oShell.Sendkeys pw
oShell.Sendkeys "~"

Wscript.Quit

Content-Key: 91333

Url: https://administrator.de/contentid/91333

Printed on: April 23, 2024 at 18:04 o'clock

Member: AndreasHoster
AndreasHoster Jul 04, 2008 at 15:00:31 (UTC)
Goto Top
Direkte Antwort auf die Frage:
Indem Du einfach weiterhin oShell.Sendkeys verwendest.
Dim user
Dim pw
Dim remote_pc
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")  

user=InputBox("Benutzername (domäne\username):", "Username")  
pw=InputBox("Passwort:", "Passwort")  
remote_pc=InputBox("Bitte geben Sie den Remote-PC ein:", "PC")  

oShell.Run "runas /noprofile /user:" & user & " cmd"  
WScript.Sleep 100

oShell.Sendkeys pw
oShell.Sendkeys "~"  

WScript.Sleep 1000
oShell.Sendkeys "format c:"  
oShell.Sendkeys "~"  

Wscript.Quit

ABER:
Sendkeys ist Teufelswerk und sollte nur im höchsten Notfall verwendet werden wenn wirklich alle anderen Mittel versagt haben.
Das Problem ist das SendKeys einfach Tastaturanschläge an Windows schickt, welche vom Fenster das den Focus hat angenommen werden.
Falls aus irgendwelchen Gründen, sei es das ein Popup kommt, daß eine Fehlermeldung kommt oder sonstwas das Fenster nicht den Focus hat oder andere Eingaben erwartet, dann hängt man irgendwo.
Das ist wie Blind die Eingaben tippen. Im obigen Fall: Falls runas länger als 1 Sekunde braucht, dann landen die Tastatureingaben sonstwo.
Es gibt sicherlich fehlerträchtigere Programmierweisen, aber im Moment fällt mir keine ein.