Thema: Delphi FindWindowEx Logik

Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 

FindWindowEx Problem (2)

  Alt 13. Nov 2004, 07:33
Hi,

Habe 3 Codes und alle sollten das gleiche machen, nur tun sie das nicht!
Code1 funktioniert, aber Code2, Code3 nicht.

Was mache ich da falsch?


Code1: ShowMessage('Gefunden'); wird angezeigt.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wndApp, wndControlBar, wnd: HWND;
begin
  wndApp := FindWindow('TAppBuilder', nil);
  wndControlBar := FindWindowEx(wndApp, 0, 'TControlBar', nil);

  // wndControlBar ist immer <> 0

  wnd := FindWindowEx(wndControlBar, 0, 'TDockToolBar', nil);
  wnd := FindWindowEx(wndControlBar, wnd, 'TDockToolBar', nil);
  wnd := FindWindowEx(wndControlBar, wnd, 'TDockToolBar', nil);
  wnd := FindWindowEx(wndControlBar, wnd, 'TDockToolBar', nil);
  wnd := FindWindowEx(wndControlBar, wnd, 'TDockToolBar', nil);
  wnd := FindWindowEx(wndControlBar, wnd, 'TDockToolBar', nil);
  
  // wnd ist immer <> 0
  
  if wnd <> 0 then
  begin
    ShowMessage('Gefunden'); // Klasse von wnd : TDockToolBar, Text von wnd : Standard
  end;
end;

Code2: ShowMessage('Gefunden'); wird nie angezeigt.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  wndApp, wndControlBar, wnd: HWND;
begin
  wndApp := FindWindow('TAppBuilder', nil);
  wndControlBar := FindWindowEx(wndApp, 0, 'TControlBar', nil);

  wnd := FindWindowEx(wndControlBar, 0, 'TDockToolBar', 'Standard'); // wnd wird immer 0!
  if wnd <> 0 then
  begin
    ShowMessage('Gefunden'); // Class: TDockToolBar, Text: Standard
  end;
end;
Code3: ShowMessage('Gefunden'); wird nie angezeigt.

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  wndApp, wndControlBar, wnd: HWND;
begin
  wndApp := FindWindow('TAppBuilder', nil);
  wndControlBar := FindWindowEx(wndApp, 0, 'TControlBar', nil);

  wnd := FindWindowEx(wndControlBar, 0, nil, 'Standard'); // wnd wird immer 0!

  if wnd <> 0 then
  begin
    ShowMessage('Gefunden'); // Class: TDockToolBar, Text: Standard
  end;
end;

FensterStruktur:

Code:
Klassen Name: "TAppBuilder" | Title: "" | Handle: 1966888 
  1573686: TControlBar
    2097588: TDockToolBar "Menu bar"
    655736: TDockPanel "Component Palette"
      721300: TComponentPaletteTabControl
        590250: TPanel
        590446: TPageScroller
          655758: TPalette "Palette"
    1769832: TDockToolBar "Custom"
    655980: TDockToolBar "Desktop"
      1245788: TDesktopComboBox "<None>"
        917904: Edit "<None>"
    1049424: TDockToolBar "Debug"
    852428: TDockToolBar "View"
    655802: TDockToolBar "Standard"
Thomas
  Mit Zitat antworten Zitat