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

Printed on: April 19, 2024 at 17:04 o'clock

Member: bastla
bastla Jan 27, 2007 at 20:07:43 (UTC)
Goto Top
Hallo hexflex!

Vielleicht bringt Dich das weiter ...

Grüße
bastla
Member: Biber
Biber Jan 27, 2007 at 20:47:58 (UTC)
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
Member: bastla
bastla Jan 27, 2007 at 21:28:49 (UTC)
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