VBS Sendkeys an Fenster
hallo weis wer wie ich via sendkeys tasten an ein bestimtes fenster senden kann, sodass ich nebenbei zb im internet surfen kan und die tasten nur an das eine fenster (oder prizess) gesendet werden?
mfg hexflex
mfg hexflex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 49868
Url: https://administrator.de/contentid/49868
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
@bastla
Wenn ich hexflex richtig verstanden habe, will er ja ein Fenster einer beliebigen Applikation "bedienen", die er nicht selbst über WshShell.Exec() oder WshShell.Run gestartet hat.
Nach dem Selber-Starten no problem -dann hätte er ein Handle und es würde funktionieren.
Ebenso, wenn er den exakten Fenstertitel wüsste (dann mit WShShell.AppActivate("AngezeigterFensterTitel").
Wenn er aber nur weiß, dass diese Applikation läuft und kein (Fenster-)Handle hat und keine ProzessID, dann wird es wohl nur über DLL-Aufrufe und damit über Hochsprachen (VB, .NET, C....) gehen, aber nicht mit VBSkript.
Oder mache ich einen Denkfehler?
Gruß
Biber
Vielleicht bringt Dich das weiter ...
Ich fürchte nein...Wenn ich hexflex richtig verstanden habe, will er ja ein Fenster einer beliebigen Applikation "bedienen", die er nicht selbst über WshShell.Exec() oder WshShell.Run gestartet hat.
Nach dem Selber-Starten no problem -dann hätte er ein Handle und es würde funktionieren.
Ebenso, wenn er den exakten Fenstertitel wüsste (dann mit WShShell.AppActivate("AngezeigterFensterTitel").
Wenn er aber nur weiß, dass diese Applikation läuft und kein (Fenster-)Handle hat und keine ProzessID, dann wird es wohl nur über DLL-Aufrufe und damit über Hochsprachen (VB, .NET, C....) gehen, aber nicht mit VBSkript.
Oder mache ich einen Denkfehler?
Gruß
Biber
@Biber
Du wirst schon recht haben ...
Also muss eine PID her - etwa so:
Grüße
bastla
Du wirst schon recht haben ...
Also muss eine PID her - etwa so:
strProcessName = "calc.exe"
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = '" & strProcessName & "'")
For Each objProcess in colProcessList
PID = objProcess.ProcessId
Next
Set WshShell = CreateObject("WScript.Shell")
WshShell.AppActivate PID
...
Grüße
bastla