Autor Beitrag
Thunder
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 145

WinXP
D6 Pers
BeitragVerfasst: Mi 08.10.03 14:35 
Hallo,

Wie prüfe ich, ob ein Fenster existiert? Mit FindWindow krieg ich das Handle. FindWindow gibt ja auch n Wert zurück, wenn es erfolgreich war dem man dann mit GetLastError auslesen kann. Wie???

Genauen Quelltext bitte. Danke.

Das will ich machen:
ICh will überprüfen ob bei ICQ eine neue Nachricht eingegangen ist VON IRGEND jemanden.

In der ICQ-API habe ich nix gefunden.

Das ganze soll in eine Repeat-Until-Schleife!
Thunder Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 145

WinXP
D6 Pers
BeitragVerfasst: Mi 08.10.03 22:47 
Hab hier ma sowas:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
var
  Form1: TForm1;
  Puzzle: THandle;
  Error: Word;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Puzzle := findWindow(nil'Puzzle');
  GetLastError;
  If GetLastError = NULL then ShowMessage ('Kein Puzzle gefunden');
end;


und

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Puzzle := findWindow(nil'Puzzle');
  Error := GetLastError;
  If Error = NULL then ShowMessage ('Kein Puzzle gefunden');
end;


Aber beides funzt net.

Wieso? *heul*
maze2k
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 252

WIN 95, WIN NT 4.0, WIN 98, WIN 98SE, WIN 2000, RedHat Linux 7.3, Mandrake Linux 9.2, Knoppix Linux 3.3
D6 Pers
BeitragVerfasst: Mi 08.10.03 23:31 
Hmm, ich hab letzt ein Script gefunden, das ich brauchen konnte, und ich glaub das hilft dir auch

Link

Da wird zwar noch weitergehend die URL von der Adressleiste des IEs ausgelesen, aber um z.B. ne Liste aller aktiven Fenster zu bekommen, is das genau richtig :)

Hatte letzt das Script schon für meine Zwecke umgeschrieben und vereinfacht, aber leider hab ich das nimmer, daher nur der Link, sonst hätt ich den Code direkt gepostet...

_________________
Wer das Konzept der Unendlichkeit verstehen will, muss nur das Ausmaß menschlicher Dummheit betrachten. (Voltaire)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 09.10.03 03:34 
Thunder hat folgendes geschrieben:
Hab hier ma sowas:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
var
  Form1: TForm1;
  Puzzle: THandle;
  Error: Word;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Puzzle := findWindow(nil'Puzzle');
  GetLastError;
  If GetLastError = NULL then ShowMessage ('Kein Puzzle gefunden');
end;


und

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Puzzle := findWindow(nil'Puzzle');
  Error := GetLastError;
  If Error = NULL then ShowMessage ('Kein Puzzle gefunden');
end;


Aber beides funzt net.

Wieso? *heul*

"funzt net" Verrätst du uns auch WAS nicht funktioniert? So mal ins Blaue geraten NULL kennt Delphi wohl nicht. GetLastError gibt den letzten Fehlercode zurück und Null (0) wenn keiner augetreten ist. So und jetzt überdenk noch mal deine Abfrage. :roll:

Die Zuweisung von GetLastError zu einer variablen ist übrigens überflüssig.
maze2k
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 252

WIN 95, WIN NT 4.0, WIN 98, WIN 98SE, WIN 2000, RedHat Linux 7.3, Mandrake Linux 9.2, Knoppix Linux 3.3
D6 Pers
BeitragVerfasst: Do 09.10.03 03:43 
Ausserdem kann ein Fenster auch existieren, ohne eine Error-Message abgegeben zu haben.

_________________
Wer das Konzept der Unendlichkeit verstehen will, muss nur das Ausmaß menschlicher Dummheit betrachten. (Voltaire)
Tana´Ri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 230



BeitragVerfasst: Do 09.10.03 09:04 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Function WindowExists ( ClassName, WindowName : PChar ) : boolean
 begin
  if findWindow(ClassName, WindowName) = 0 then
   begin
     result := false;
     { raise Exception.Create(WindowName+' doesn´t exist'); }
  end
   else result := true; 
end;

_________________
mfg
Tana´Ri