Autor Beitrag
r4in
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 06.08.10 15:28 
Hi Leute,

gibt es eine Art Platzhalter bei der Handle-Suche für ein fremdes Fenster?

Ich suche beispielsweise ein Fenster mit dem Titel:

"Programm name" -9-stellige Nummer - "Zusatz"....

gibt es nun eine Möglichkeit der Funktion mitzuteilen, dass nach Programm name 9 unbekannte ziffern folgen und dann wieder das Wort "Zusatz" folgt?
Das Problem ist, dass ich nicht einfach nur nach "Programm name" oder nach "Zusatz" suchen kann, da es nicht eindeutig ist und es mehr Fenster mit diesem Titel gibt... ich muss über die dynamisch generierte 9-stellige Nummer gehen :(

Die Funktion:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
  NextHandle: Hwnd;
  NextTitle: array[0..260of char;
begin
  // Get the first window
  NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
  while NextHandle > 0 do
  begin
    // retrieve its text
    GetWindowText(NextHandle, NextTitle, 255);
    if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
    begin
      Result := NextHandle;
      Exit;
    end
    else
      // Get the next window
      NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
  end;
  Result := 0;
end;

Der Aufruf:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
   h := FindWindowByTitle('??????????????????????????');
    Application.ProcessMessages;
  if h <> 0 then showmessage('gefunden')
  else showmessage('NICHT gefunden');

thx 4 hints!

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 07.08.10 04:31 
Du musst eben den Vergleich von deinem WindowTitle und NextTitle entsprechend anpassen. ;-)

Ob du das jetzt mit regulären Ausdrücken oder über mehrfache Verwendung von Pos usw. machst, kannst du dir überlegen.

Oder du benutzt diese Funktionen für den Vergleich mit Wildcards:
www.delphipraxis.net/135397-post.html