![]() |
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:
Dem Button sagen das er geklickt wurde
var
hFenster, hButton: HWND; ... hFenster := FindWindow(nil, PChar(Form1.Edit1.Text)); hButton := FindWindowEx(hFenster, 0, 'TButton', nil);
Delphi-Quellcode:
Der Compiler bringt keine Fehlermeldung, auch während das Programm lauft kommt keine Fehlermeldung, aber auf den Button wird nicht geklickt.
SendMessage(hButton, BM_Click, 0, 0);
MFG Maximus |
Re: Klick auf Button
Ist hFenster und / oder hButton ungleich null? Sprich sind die Handles gültig? Was leifert GetLastError?
|
Re: Klick auf Button
Zitat:
Delphi-Quellcode:
ExitError gibt einfach eine Fehlermeldung aus und stoppt das Programm
if hFenster = 0 then
ExitError('Error: Kein gültiges Fenster gefunden'); if hButton = 0 then ExitError('Error: Kein gültigen Button gefunden'); 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 |
Re: Klick auf Button
Und welche Meldung? Und was sagt
Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError));
Zitat:
|
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 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz