Entwickler-Ecke

Windows API - FindwindowEx() functioniert nicht richtig


sideruner - Fr 11.01.08 16:55
Titel: FindwindowEx() functioniert nicht richtig
Moin ;)

ich habe da ein kleines problem mit findwindowex und habe im forum nix passendes gefunden

Ich versuche in einem 2ten Program einen Button über mein erstes Program zu drücken.
Wenn das Fenster von meinem ersten Program über dem Fenster von meinem zweiten Program ist, dann klappt das mit dem Button drücken. Ist das Fenster meines ersten Programs aber nicht über dem Fenster meines Zweiten Programms, so bekomm ich einen anderen Handle und der Button wird nicht gedrückt

Code vom ersten Programm:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);
var
  wnd :cardinal;
begin
  wnd := FindWindow(nil, 'Program2');
  wnd := Findwindowex(wnd,0,'TspSkinPageControl',nil);
  wnd := Findwindowex(wnd,0,'TspSkinTabSheet','Standart');
  wnd := Findwindowex(wnd,0,'Tspskinbutton','show');  
  // wenn das Fenster dieses Programmes über dem zweiten Programm ist, dann ist wnd = 66670
  // Ist das Fenster dieses Programmes nicht über dem zweiten programm, so ist wnd = 918650

  postmessage(wnd,wm_lbuttondown,0,0);
  postmessage(wnd,WM_LBUTTONUP,0,0);
  showmessage(inttostr(wnd));
end;


Kann mir einer sagen woran das liegt, denn ich möchte nicht das das erste program immer über dem zweiten program sein muss

danke schonmal im voraus :D


sideruner - Fr 11.01.08 18:41

Ok hab das Problem gelöst.

musste nur

Delphi-Quelltext
1:
2:
var
 wnd :cardinal;


auf


Delphi-Quelltext
1:
2:
var
 wnd :HWND;


umändern^^

Sry für den thread :P