Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Klick auf Button [erledigt] (https://www.delphipraxis.net/39151-klick-auf-button-%5Berledigt%5D.html)

Maximus 29. Jan 2005 14:41


Klick auf Button [erledigt]
 
Hallo,

Ich möchte von meinem Programm aus einen Klick auf einen Button einer fremden Anwendung simulieren.

Doch leider gibt es dabei ein Problem, ...

Handle holen ...
Delphi-Quellcode:
var
 hFenster, hButton: HWND;

...

hFenster := FindWindow(nil, PChar(Form1.Edit1.Text));
hButton := FindWindowEx(hFenster, 0, 'TButton', nil);
Dem Button sagen das er geklickt wurde
Delphi-Quellcode:
SendMessage(hButton, BM_Click, 0, 0);
Der Compiler bringt keine Fehlermeldung, auch während das Programm lauft kommt keine Fehlermeldung, aber auf den Button wird nicht geklickt.

MFG
Maximus

Luckie 29. Jan 2005 14:57

Re: Klick auf Button
 
Ist hFenster und / oder hButton ungleich null? Sprich sind die Handles gültig? Was leifert GetLastError?

Maximus 29. Jan 2005 14:59

Re: Klick auf Button
 
Zitat:

Zitat von Luckie
Ist hFenster und / oder hButton ungleich null? Sprich sind die Handles gültig? Was leifert GetLastError?

hFenster und hButton sind ungleich 0 (wird überprüft)

Delphi-Quellcode:
  if hFenster = 0 then
   ExitError('Error: Kein gültiges Fenster gefunden');
  if hButton = 0 then
   ExitError('Error: Kein gültigen Button gefunden');
ExitError gibt einfach eine Fehlermeldung aus und stoppt das Programm

MFG
Maximus

//Edit: Ups zweimal Abfrage für hFenster geschrieben (bin ausversehen auf [FN]+c stats strg+c gekommen ...)

//Edit2: GetLastError liefert wenn das Programm auf den fremden Button klicken soll 1400 zurück

Luckie 29. Jan 2005 15:04

Re: Klick auf Button
 
Und welche Meldung? Und was sagt
Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError));
Zitat:

1400 = Invalid window handle.
Ist die Fensterklasse wirklich TButton? So heißt die Klasse nämlich nur in der VCL? Wurde das programm denn mit der VCL (Delphi, C-Builder) erstellt oder mit dem VC oder was anderm?

Maximus 29. Jan 2005 15:07

Re: Klick auf Button
 
Oh ... da liegt der Fehler "Ungültiges Fensterhandle"

Aber wieso ist hButton ungültig?

//Edit: Das Programm wurde mit Delphi3 erstellt (eine Form mit einem Button) - Ja die Fensterklasse ist wirklich TButton (auch nochmal mit X-Spy überprüft)

------------------------------------------------------------------------------

Aua :wall: Hab die Procedure in der das Handle für den Button gesetzt wird vergessen aufzurufen :wall: Jetzt funktionierts!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 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