AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi ClassName / Caption von Objekt erhalten
Thema durchsuchen
Ansicht
Themen-Optionen

ClassName / Caption von Objekt erhalten

Ein Thema von Destroyer446 · begonnen am 16. Jun 2012 · letzter Beitrag vom 19. Jun 2012
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.201 Beiträge
 
Delphi 12 Athens
 
#1

AW: ClassName / Caption von Objekt erhalten

  Alt 16. Jun 2012, 21:46
FindControl und ControlAtPos, oder was sonst noch am Ende auf FindControl zugreift,
funktioniert natürlich nur programmintern.

Andere Programme und auch eigene DLL, solange sie nicht mit Laufzeitpackages kompiliert wurden, können nicht ausgelesen werden.



Du versuchst es doch hoffentlich nur programmintern?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#2

AW: ClassName / Caption von Objekt erhalten

  Alt 16. Jun 2012, 22:29
Was willst du den jetzt konkret alles haben?
So wie ich es verstanden habe willst du folgendes, bitte Koregiere mich wenn ich falsch liege.

- Mouse auf ein Fenster (Ich denke mal du meinst damit eine Form bzw. ein Fenster mit Titel-Bar)
- Fenster Klasse and Caption auslesen (Fensterklasse und Titelbar-Text.)
- Mouse auf ein Objekt (Was meinst du mit Objekt? Ein Control, wie z.b. ein Label, ein "Child-Window" wie z.b ein Memo,Edit,ComboBox usw. ,ein Control was halt ein HWND hat.
Das Ding ist nämlich, dass VCL-Komponenten nicht zwangsläufig einen HWND haben.
- Fenster Klasse and Caption auslesen (Fensterklasse ist klar, aber was meinst du mit Caption?
Meinst du z.b. wenn du über ein Label gehst, das Caption davon?
Und wenn du über ein Memo gehst, was soll er dir dan geben für Caption? Den Memo-Text?

Klassennamen kannst du für alles bekommen was ein HWND (Fenster-Handle, was z.b. ein Edit oder ComboBox oder ein Fenster hat). Wenn wie schon erwähnt,wenn du es nur intern brauchst, benutze ControlAtPos.
Wenn du Windowsweit haben willst, kannst du dir nur Fenster-Handles holen und auch nur von denen die Klassennamen auslesen.

Gruß NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Destroyer446

Registriert seit: 17. Jan 2011
67 Beiträge
 
#3

AW: ClassName / Caption von Objekt erhalten

  Alt 17. Jun 2012, 13:09
Ich habe:
FensterCaption des fremden Fensters

Ich will:
Button auf anderem Fenster drücken -> Dazu muss ich ja den Namen wissen

Und nein, ich will es nicht nur Programmintern machen.
PS: Das mit der Maus usw war nur zu Testzwecken, um zu prüfen, wie ich den Namen rausbekommen kann.

Mfg, Destroyer446
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ClassName / Caption von Objekt erhalten

  Alt 17. Jun 2012, 13:30
Lass Dir doch den Code zum Ermitteln des Button-Handles von WinSpy generieren. Dem schickst Du dann ein BM_CLICK (oder BN_CLICKED, ich weiß es gerade nicht genau, Code sollte im Forum zu finden sein).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#5

AW: ClassName / Caption von Objekt erhalten

  Alt 17. Jun 2012, 16:28
Hier der Link zum Thread, für die faulen
http://www.delphipraxis.net/15388-wi...6-09-08-a.html
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: ClassName / Caption von Objekt erhalten

  Alt 17. Jun 2012, 18:15
das was ich hochgeladen hatte tut unter anderem genau dies....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#7

AW: ClassName / Caption von Objekt erhalten

  Alt 18. Jun 2012, 01:20
Gut, wenn du das Caption des Fensters schon hast, musst du das Fenster mit FindWindow suchen, dort kannst du das Caption als "Suchparameter" eingeben. Damit bekommst du das HWND, womit du weitermachen kannst.
Für den Button zufinden gibt es 2 Möglichkeiten:
- Einmal, mit FindWindowEx, falls du Klasse oder Button-Text hast. Klasse wird schwer, da man Subclassing machen kann, und somit der Button keinen "festen" Klassenname hat. Button-Text, falls du einen Button mit einem bestimmten Text drücken willst, der sich nicht ändert.
- Das zweite wäre, dass du mit EnumChildWindows, alle Child-Handles (also sozusagen "Controls") durchgehst und überprüfst, indem du dir zu jedem den Klasennamen oder Text geben lässt. Das würde dann so funktionieren:
Delphi-Quellcode:
function EnumChildProc(hHandle : HWND; lParam : Integer) : Boolean; stdcall;
begin
  //Überprüfe hier, was du brauchst. Du kannst alle Infos von diesem Child mit dem Parameter hHandle holen.
  //Wenn du das Fenster gefunden hast, gib False zurück, wenn nicht True.
end;

//Aufruf
EnumChildWindows(hParentHWND,@EnumChildProc,0); //In den letzen Parameter kannst du eine eigene Zahl, Pointer übergeben. Diesen Wert findest du in der EnumChildProc im lParam wieder. Funktioniert wie mit SendMessage.
So damit solltest du das denk ich jetzt hinbekommen. Dies ist alles aus dem Kopf geschrieben, hoffe das funkt so.

Gruß NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  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 14:40 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