hexflex
Goto Top

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

Content-Key: 49868

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

Ausgedruckt am: 28.03.2024 um 15:03 Uhr

Mitglied: bastla
bastla 27.01.2007 um 21:07:43 Uhr
Goto Top
Hallo hexflex!

Vielleicht bringt Dich das weiter ...

Grüße
bastla
Mitglied: Biber
Biber 27.01.2007 um 21:47:58 Uhr
Goto Top
@bastla
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
Mitglied: bastla
bastla 27.01.2007 um 22:28:49 Uhr
Goto Top
@Biber

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