Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Button in anderer Anwendung (https://www.delphipraxis.net/158316-button-anderer-anwendung.html)

Delphi-Checker 13. Feb 2011 10:48


Button in anderer Anwendung
 
Hallo, ich versuche krampfhaft den Status eines Button in einer
andren Anwendung zu ermitteln. Das Handle des Buttons habe ich,
und ein ansprechen des Buttons mit
Delphi-Quellcode:
SendMessage(wndChild,BM_CLICK,0,0)
bring auch den gewünschten Erfolg.
Die Abfragen zum Status des Buttons bringen keinen Erfolg.

Delphi-Quellcode:
 Style := getWindowLong(wndMain, gwl_style);
 if (Style and WS_DISABLED) <> WS_DISABLED then ...// kein Ergebniss
und

Delphi-Quellcode:
 if (SendMessage(wndChild,BM_GETSTATE,0,0) and BST_PUSHED) = BST_PUSHED then... //kein Ergebniss


Vieleicht hat ja noch jemand eine Idee, woran das liegen kann.

Gruss Jörg

WM_CLOSE 13. Feb 2011 11:00

AW: Button in anderer Anwendung
 
was sagt denn GetLastError?

Delphi-Checker 15. Feb 2011 00:22

AW: Button in anderer Anwendung
 
GetLastError gibt in beiden Fällen keinen Fehler aus.
Beim ersten Aufruf erhalte ich immer WS_ENABLED zurück,
und bei der zweiten Abfrage bekomme Ich immer 0 zurück.

jfheins 15. Feb 2011 11:34

AW: Button in anderer Anwendung
 
Zitat:

Style := getWindowLong(wndMain, gwndMainwl_style);
Vielleicht ist das der Fehler ;)

Delphi-Checker 15. Feb 2011 13:55

AW: Button in anderer Anwendung
 
Entschuldige bitte, da habe ich mich verschrieben.
Es heist bei mir natürlich
Delphi-Quellcode:
Style := getWindowLong(wndChild, gwl_style);
if (Style and WS_DISABLED) <> WS_DISABLED then ...// kein Ergebniss
Wie gesagt, erhalte ich auch einen Wert zurück,
der jedoch egal wie der Button aussieht immer enabled ist.

DeddyH 15. Feb 2011 14:00

AW: Button in anderer Anwendung
 
Hast Du es einmal mit IsWindowEnabled versucht?

Delphi-Checker 15. Feb 2011 14:23

AW: Button in anderer Anwendung
 
IsWindowEnabled bringt auch immer nur True.
Ich bin am verzweifeln!

DeddyH 15. Feb 2011 14:32

AW: Button in anderer Anwendung
 
Merkwürdig, ich habe das gerade einmal ausprobiert, bei mir geht das einwandfrei :gruebel:

WM_CLOSE 15. Feb 2011 14:35

AW: Button in anderer Anwendung
 
Was ist denn das für eine "Anwendung". Kann es sein, dass sie die Windows-Eigenschaft WS_ENABLED gar nicht antastet?
Versuch mal mit dem dem Programm die Eigenschaft auzulesen: http://mh-nexus.de/en/downloads.php?product=PropEdit

Delphi-Checker 15. Feb 2011 14:41

AW: Button in anderer Anwendung
 
Ich habe das mal mit einer Dummy-Anwendung ausprobiert.
Das Handle des Buttons habe ich mit WinSpy++ geholt und es funktioniert!
Ich glaube mein Problem liegt an dem Handle des Buttons.
Komisch aber das ich den Button über SendMessage ansprechen kann.
Danke für den Link, werde Heute Nacht auf Arbeit noch einmal
ein paar Versuche machen (Habe die Anwendung nicht zu Hause).
Werde mich Morgen mal dazu melden.

Grüße Jörg


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:34 Uhr.
Seite 1 von 2  1 2      

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