Einzelnen Beitrag anzeigen

dusty

Registriert seit: 6. Mär 2004
Ort: D-45772 Marl
17 Beiträge
 
Delphi 5 Enterprise
 
#6

AW: FindWindow findet Fenster nicht

  Alt 1. Mai 2012, 09:24
Die meisten Fenster werden gefunden, aber eben einzelne partout nicht.
Weil die Fenstertitel mit Paste/Copy übertragen werden und auch visuell
verglichen werden, schließe ich die Variante "Leerzeichen vergessen" aus.

WinSpy kann ich auf dem fremden Rechner nicht einsetzen. Scheidet aus.
Hier auf Wunsch der Code zum Problem:

Fenster auflisten Code:

Delphi-Quellcode:
function EnumWinProc(Wnd: THandle; LParam: LongInt): Boolean; stdcall;
var
  WinCaption : string;
  Len: integer;
begin
  Result := True;
  Len := GetWindowTextLength(Wnd);
  SetLength(WinCaption, Len);
  GetWindowText(Wnd, PChar(WinCaption), Len+1);
  if Trim(WinCaption) <> 'then
    Form1.Memo2.Lines.Add(Format('%.6x : %s', [Wnd, WinCaption]));
end;

procedure TForm1.BtnEnumWindowsClick(Sender: TObject);
begin
   Memo2.lines.Clear;
   EnumWindows(@EnumWinProc, 0);
end;
Fenster abfragen Code:

Delphi-Quellcode:
procedure TForm1.BtnEnumChildsClick(Sender: TObject);
var hmain, hsub : HWND;
    ilen : integer;
    ptext : pChar;
    fenstername : string;
begin
   Memo2.clear;
   fenstername := Edit_Fenstername.Text;
   if fenstername = 'then exit;
   hmain := FindWindow(nil, PChar(fenstername));
   // if hmain = 0 then ShowMessage(inttostr(GetLastError()));
   if hmain <> 0 then // Fenster vorhanden!
      ShowMessage('Fenster gefunden: ' + fenstername)
   else
     ShowMessage('Fenster NICHT gefunden: ' + fenstername);
end;
GetLastError war immer 0, deshalb auskommentiert.

Geändert von dusty ( 1. Mai 2012 um 09:31 Uhr)
  Mit Zitat antworten Zitat