Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#13
  Alt 28. Jul 2002, 13:18
Ich glaub, ich bin zu blöd, um EnumWindows zu benutzen. Folgenden Code benutze ich zum Testen:

Code:
function EnumWindowsProc(Hnd: HWND; Lines: TStrings): Boolean; stdcall;
var
  FileName: Array[0..255] of Char;
begin
  GetWindowModuleFileName(Hnd, @FileName, 255);
  Lines.Add(InttoStr(Hnd) + ': ' + FileName);
  if FileName = AppName then
  begin
    Result := False;
  end
  else
  begin
    Result := True;
  end;
end;
und
Code:
AppName := ParamStr(0);
  EnumWindows(@EnumWindowsProc, Integer(Form1.Memo1.Lines));
Doch komischerweise kommen in dieser Liste immer die gleichen Handles vor. Wenn ich die in einem ShowWindow-Aufruf verwende, veränder ich nicht das Fenster, das ich gewollt hab (also das meines Programmes), sondern irgendein anderes, meistens eins von meinem AntiVirus-Programm. Was heißt eigentlich genau "top-level-window"? Weil das, was ich gedacht habb, dass es heißt, kann es wohl nicht heißen, denn sonst hätt ich wohl kaum 30 dieser Fenster mit dem gleichen Pfad und Dateinamen gefunden.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat