AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Button aus and. Anwendung klicken geht nicht?!
Thema durchsuchen
Ansicht
Themen-Optionen

Button aus and. Anwendung klicken geht nicht?!

Ein Thema von Portabella · begonnen am 23. Sep 2004 · letzter Beitrag vom 23. Sep 2004
Antwort Antwort
Portabella

Registriert seit: 20. Jun 2004
45 Beiträge
 
#1

Button aus and. Anwendung klicken geht nicht?!

  Alt 23. Sep 2004, 14:55
Hallo,

ich versuche gerade, in einem anderen Fenster bzw. in einer MessageBox eines anderen Fenstern einen Button zu Klicken. Folgenden Code habe ich dazu gefunden:

Code:
function TForm1.ClickButton(ParentWindow: Hwnd; ButtonCaption: string): Boolean;
var
  SL: TStringList;
  H: hWnd;
begin
  SL := TStringList.Create;
  try
    SL.AddObject(ButtonCaption, nil); // First item in list is text to find
    EnumChildWindows(ParentWindow, @EnumChildProc, Longint(SL));
    H := 0;
    case SL.Count of
      1: ShowMessage('Window text not found.');
      2: H := hWnd(SL.Objects[1]);
      else
        ShowMessage('Ambiguous text detected.');
    end;
  finally
    SL.Free;
  end;
  Result := H <> 0;
  if Result then PostMessage(H, BM_CLICK, 0, 0);
end;

FUNCTION TForm1.EnumChildProc(Wnd: hWnd; SL: TStrings): BOOL; stdcall;
VAR
   szFull: array[0..MAX_PATH] of Char; //Buffer for window caption
BEGIN
   Result := Wnd <> 0;
   if Result then
   BEGIN
      GetWindowText(Wnd, szFull, SizeOf(szFull)); // put window text in buffer
      if (Pos(SL[0], StrPas(szFull)) > 0) and // Test for text
          (SL.IndexOfObject(TObject(Wnd)) < 0) then // Test for duplicate handles
         SL.AddObject(StrPas(szFull), TObject(Wnd)); // Add item to list
      EnumChildWindows(Wnd, @EnumChildProc, Longint(SL)); //Recurse into child windows
   END;
END;
Allerdings kommt beim Compilieren eine Fehlermeldung: Variable required
und zwar an folgender Stelle:

Code:
EnumChildWindows(Wnd, @EnumChildProc, Longint(SL)); //Recurse into child windows
Kann mir jemand weiter helfen? Wäre sehr dankbar.

Gruß, Diana
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#2

Re: Button aus and. Anwendung klicken geht nicht?!

  Alt 23. Sep 2004, 15:03
1. die EnumChildProc() sollte vor die andere.
2. EnumChildProc() sollte nicht zum Form gehören, dann gehts:
FUNCTION EnumChildProc(Wnd: hWnd; SL: TStrings): BOOL; stdcall;
  Mit Zitat antworten Zitat
Portabella

Registriert seit: 20. Jun 2004
45 Beiträge
 
#3

Re: Button aus and. Anwendung klicken geht nicht?!

  Alt 23. Sep 2004, 15:06
Danke.
Wo deklariere ich den Methode dann, dass sie nicht zur Form gehört?
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#4

Re: Button aus and. Anwendung klicken geht nicht?!

  Alt 23. Sep 2004, 15:08
Du lässt einfach das TForm1. weg und den Eintrag unter
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    //hier
  private
lässt du weg.
  Mit Zitat antworten Zitat
Portabella

Registriert seit: 20. Jun 2004
45 Beiträge
 
#5

Re: Button aus and. Anwendung klicken geht nicht?!

  Alt 23. Sep 2004, 15:11
Suuuuuuuuper! Das war's! Jetzt klappt es!

Vielen Dank,

Diana
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz