Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#15
  Alt 9. Aug 2002, 15:04
So, nachdem ich schon aufgegeben hatte, hab ich jetzt doch mal weiter gemacht. Auch wenn ich es sehr seltsam finde, dass ich in meiner Anwendung auch Handles, die laut ClassName zu WinAmp gehören, finde, scheint eine Sache zu funktionieren: Wenn ich das Handle von 'Form1' als Parameter in ShowWindow einsetze, funktioniert es. Das Problem ist nur, dass es jeweils zwei Handles zu TForm1, TApplication etc. gibt.

Falls es jemanden interessiert, hier soweit der Code der Callback-Funnktion:
Code:
function EnumWindowsProc(Hnd: HWND; Lines: TStrings): Boolean; stdcall;
var
  FileName: Array[0..255] of Char;
  ClassName: String;
  Buf: Array[0..1023] of Char;
begin
  GetWindowModuleFileName(Hnd, @FileName, 255);
  if FileName = AppName then
  begin
    SetString(ClassName, Buf, GetClassName(Hnd, Buf, 1024));
    if Classname = 'TForm1' then
    begin
      Lines.Add(Classname + ':' + InttoStr(Hnd));
      Result := False;
      ShowWindow(hnd,SW_MAXIMIZE);
    end;
  end
  else
  begin
    Result := True;
  end;
end;
Auf der Form befindet sich z. B. eine Listbox. Folgendermaßen wird die Callback-Funktion aufgerufen:
Code:
AppName := ParamStr(0);
EnumWindows(@EnumWindowsProc, Integer(Listbox1.Items));
Jetzt versuch ich das gleiche Mal für Anwendungen, die nicht in Delphi geschrieben sind.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat