AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Handle unter maus beim mausklick ermitteln ...
Thema durchsuchen
Ansicht
Themen-Optionen

Handle unter maus beim mausklick ermitteln ...

Ein Thema von moppedfahrer · begonnen am 18. Mär 2008 · letzter Beitrag vom 19. Mär 2008
Antwort Antwort
Seite 1 von 3  1 23      
moppedfahrer

Registriert seit: 8. Mär 2007
28 Beiträge
 
#1

Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 00:08
Hi
folgendes Problem:
ich habe ein Fenster und möchte gerne das Handle eines Buttons auf diesem Fenster ermitteln. Ich stell mir das so vor, dass ich auf dem Button rumklicke und mein Programm mir brav und artig die Handles von dem mitschreibt, worauf ich da rumklicke...
Ich hab aus eurer Hilfe entnommen, dass man mit
WindowFromPoint(Mouse.CursorPos) das Handle unter der Maus kriegt. Wenn ich dann aber als Test mit
sendmessage(WindowFromPoint(Mouse.CursorPos),WM_LButtonDown,0,0); versuche den Button zu "drücken", tut sich nichts.

Weiß jemand, wie man sowas realisieren könnte ?

Danke im voraus ...
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#2

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 00:13
ich kucks mir gleich nochmal an, aber was mir auf den ersten blick auffällt, du ermittelt das handel des fensters und nicht das, des buttons

MfG - Ghost007

//Edit: Such mal nach "WinSpy" mit dem netten tool kannst du dir direkt den code für das grappen von handels ausgeben lassen
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
moppedfahrer

Registriert seit: 8. Mär 2007
28 Beiträge
 
#3

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 00:23
hast ja recht, der name spricht iwie für sich ^^
kann man die handles nich auch mit delphi auslesen ?
Wie gehe ich denn damit um (winspy)^^ ? und kann ich die infos über die handles davon in delphi verwenden ?

mfg
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 00:52
ömm, is zwar schon spät, aber ersetz mal:

sendmessage(WindowFromPoint(Mouse.CursorPos),WM_LButtonDown,0,0); durch

Delphi-Quellcode:
var HandleVar:integer;

{code}

// Handle zuweisen
HandleVar:=WindowFromPoint(Mouse.CursorPos);

{code}

// Nachricht ausführen
sendmessage(HandleVar,WM_LButtonUp,0,0);
bzw. schreibe

Delphi-Quellcode:
sendmessage(HandleVar,WM_LButtonDown,0,0);
sendmessage(HandleVar,WM_LButtonUp,0,0);
für nen vollständigen Klick. Habe ne kurze Demo programmiert und der Buttonklick wurde erfolgreich durchgeführt... als Gegenleistung kannst du mir vielleicht verraten, wie ich eine Caption eines Buttons über das Handle auslesen kann


gute Nacht,
Christian
Christian Nöding
  Mit Zitat antworten Zitat
moppedfahrer

Registriert seit: 8. Mär 2007
28 Beiträge
 
#5

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 00:59
hi^^
mhh also es ist nich das problem an das fensterhandle zu kommen. das problem ist, ich würde gerne wissen, wie das handle heißt, an das meine aktionen gerade gerichtet werden (z.B. mausklicks).
Und: sorry aber da ich nichtmal weiß wie ich an die handles von den buttons komme, kann ich dir auch nicht sagen wie man an deren caption kommt
// EDIT: Hab ich dich richtig verstanden ??? ... wenn nich , bitte meckern
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#6

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 01:09
Hi,
winspy gibt dir direkt den delphi code aus.

Selbsterklärende beschreibung + winspy im anhang

MfG - Ghost007

[Edit für christian]
Delphi-Quellcode:
function TForm1.GetText(wnd:Thandle):string;
 var
  caption:PChar;
  length:integer;
begin
 length:=SendMessage(wnd,WM_GETTEXTLENGTH,0,0);
 if length <> 0 then
  begin
   GetMem(caption, length+1);
   SendMessage(wnd,WM_GETTEXT,length+1,Integer(caption));
   result:=caption;
   FreeMem(caption);
  end;
end;
[/Edit]
Angehängte Dateien
Dateityp: rar handle-kit_430.rar (1,20 MB, 34x aufgerufen)
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 08:34
@moppedfahrer:

auch wenns von ghost007 bereits erklärt wurde: das Handle des Buttons oder einer anderen Komponente bekommst du doch ohne weiteres mit dieser Zeile:

HandleVar:=WindowFromPoint(Mouse.CursorPos); Natürlich bekommst du, wenn du deine Maus vom Button wegbewegst, natürlich sofort wieder das Handle des den Button umgebenden Fensters in die Variable HandleVar. Somit musst du dir halt was passendes für die Zuweisung des Handles in die Variable oder ähnliches ausdenken, sodass du wirklich nur das Handle bekommst, welches du auch willst. Danach wie von dir geschrieben die SendMessage ausführen mit WM_LButtonDown und WM_LButtonUp (WM_LButtonDown allein reicht nämlich nicht, um den Button zu drücken).

@ghost007:

vielen Dank. Das das mit WM_GETTEXT ging hatte ich schon rausbekommen, nur wie ich den Inhalt auf eine Variable zuweisen musste war mir nicht klar. Super Sache Jetzt kann ich mir endlich mein eigenes Girder für meine Fernbedienung bauen *g*



ciao
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#8

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 08:48
[quote="moppedfahrer"]
Ich stell mir das so vor, dass ich auf dem Button rumklicke und mein Programm mir brav und artig die Handles von dem mitschreibt, worauf ich da rumklicke...
/quote]

Für das rumklicken musst du die warscheinlich einen mousehook einbaun. such einfach mal dann hier im forum

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
moppedfahrer

Registriert seit: 8. Mär 2007
28 Beiträge
 
#9

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 18. Mär 2008, 15:57
Vielen Dank für die schnellen Antworten
werd mich gleich mal ranmachen
  Mit Zitat antworten Zitat
moppedfahrer

Registriert seit: 8. Mär 2007
28 Beiträge
 
#10

Re: Handle unter maus beim mausklick ermitteln ...

  Alt 19. Mär 2008, 18:40
Klappt jetzt wunderbar ... Danke
Aber ich glaube, an die sache mit den mousehooks trau ich mich erstmal noch nich ran
Scheint nicht ganz so einfach zu sein ^^
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 12:15 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