Autor Beitrag
nepleurepas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

Win XP

BeitragVerfasst: Sa 05.04.08 22:18 
Hallo,
auch auf die gefahr hin gesteinigt zu werden weil es das thema schon tausendmal gab, ich hab grad nur n modem und ewiges suchen damit macht ech kein spass...

also meine frage. Mein programm soll merken, wenn ein Fenster eines anderen, fremden Programmes geschlossen wird.
Nur den Prozess/Thread? zu beobachten dürfte nich reichen, da wenn das fenster des fremden programmes geschlossen wird, öffnet das fremde programm ein neues fenster mit gleichem titel.
Aber ich muss trotzdem mitbekommen, wann dieser "fensterwechel" vonstatten geht. Hoff mal ihr versteht mich.

Gruß Stefan
crncpz
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 59

WIN 2000, WIN XP Pro
Delphi 6
BeitragVerfasst: Sa 17.05.08 09:06 
ich habe das mal über die PID gemacht gehabt.
war nicht gerade elegant aber funktioniert.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
function processexists(pid:dword):boolean;
var h : thandle;
    pe : tprocessentry32;
    erg : boolean;
begin
  h := createtoolhelp32snapshot(th32cs_snapprocess,0);
  pe.dwSize := sizeof(pe);
  erg:=false;
  if process32first(h,pe) then
  repeat
    if pe.th32ProcessID = pid then
    begin
      erg:=true;
      break
    end
  until (not process32next(h,pe))or(erg=true);
  closehandle(h);
  processexists:=erg;
end;

zuvor musst du nur noch die PID vom Programm bestimmen.
Wotan89
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Di 20.05.08 14:50 
Dies würde doch nur den Wechsel des Prozesses wahrnehmen, aber es geht doch um das Fenster. Wenn ein neues Fenster geöffnet wird, hat dies auch ein Handle (HWND). Mit FindWindow() erhälst du das Handle des Fensters, und sobald sich das Fenster schließt und ein neues gestartet wird, hat das neue Fenster zwar den gleichen Namen, aber ein anderes Handle.