vielen dank
fremdes fenster fokussieren
Re: fremdes fenster fokussieren
wow also der code von chi funktioniert
vielen dank
vielen dank
-
3dhubiflieger
- Beiträge: 123
- Registriert: 27.10.2013 12:13
Re: fremdes fenster fokussieren
Also...ich habe eine komplett andere Methode gefunden um ein Programm in den Vordergrund zu bringen ! Man simuliert einfach den Anwender, wenn dieser mit ALT TAB das Programm wechselt ! Dieser Code hier funktioniert mit echtem Vollbild und Vollbildfenster. Und ich denke auch auf jedem Windows Betriebssystem ! Mich würde interressieren was ihr davon haltet !
Code: Alles auswählen
#KEYEVENTF_SCANCODE = 8
#KEYEVENTF_KEYUP = 2
#MAPVK_VK_TO_VSC = 0
Procedure ProcessID(PName$)
Protected Snapshot, Snapshot2, ProcessFound
Protected Process.PROCESSENTRY32, Module.MODULEENTRY32
Process\dwSize = SizeOf(PROCESSENTRY32)
Module\dwSize = SizeOf(MODULEENTRY32)
Snapshot = CreateToolhelp32Snapshot_(#TH32CS_SNAPPROCESS, 0)
If Snapshot
ProcessFound = Process32First_(Snapshot, Process)
While ProcessFound
Snapshot2 = CreateToolhelp32Snapshot_(#TH32CS_SNAPMODULE,Process\th32ProcessID)
If Snapshot2
If Module32First_(Snapshot2, @Module)
If UCase(PName$) = UCase(PeekS(@Module\szExePath[0]))
CloseHandle_(Snapshot)
CloseHandle_(Snapshot2)
ProcedureReturn Process\th32ProcessID
EndIf
CloseHandle_(Snapshot2)
EndIf
EndIf
ProcessFound = Process32Next_(Snapshot, Process)
Wend
CloseHandle_(Snapshot)
EndIf
ProcedureReturn 0
EndProcedure
Procedure writekeyboardbuffer(Scancode,druecken)
;schreibt ein Zeichen in den Keyboardbuffer
;extended oder nicht extended Key prüfen
If MapVirtualKey_(Scancode,1) = 0
If druecken
keybd_event_(0,Scancode,#KEYEVENTF_SCANCODE | #KEYEVENTF_EXTENDEDKEY, 0)
Else
keybd_event_(0,Scancode, #KEYEVENTF_KEYUP| #KEYEVENTF_SCANCODE | #KEYEVENTF_EXTENDEDKEY, 0)
EndIf
Else
If druecken
keybd_event_(0,Scancode,#KEYEVENTF_SCANCODE , 0)
Else
keybd_event_(0,Scancode, #KEYEVENTF_KEYUP| #KEYEVENTF_SCANCODE , 0)
EndIf
EndIf
EndProcedure
Procedure setzeProgrammFocus(Pfad$)
PID.l = Processid(Pfad$)
Repeat
;Alt drücken
writekeyboardbuffer(56,1)
Auswahl = Auswahl + 1
;Tab je nach Auswahl x mal drücken
For x = 1 To Auswahl
;Tab drücken
writekeyboardbuffer(15,1)
;Tab loslassen
writekeyboardbuffer(15,0)
Next
;Alt loslassen
writekeyboardbuffer(56,0)
Delay(10) ;ein bisschen warten bis das Fenster angezeigt wird
GetWindowThreadProcessId_(GetForegroundWindow_(), @PIDVorderfenster.l)
Until PIDVorderfenster = PID.l Or Auswahl > 20
EndProcedure
setzeProgrammFocus("C:\programme\mozilla Firefox\firefox.exe")
Re: fremdes fenster fokussieren
eigentlich ganz gut
nur ich wollte halt nur das handle vom fenster angeben müssen und nich den ganzen pfad von dem programm
aber trotzdem gut
nur ich wollte halt nur das handle vom fenster angeben müssen und nich den ganzen pfad von dem programm
aber trotzdem gut