![]() |
ButtonID
Hallo!
Weiß jemand wie ich an die ButtonID von einem Button eines fremden Fensters komme? Vielleicht gehts ja mit WinSight..ich habs nua leider nix in der richtung gefunden. Denn das Handle ändert sich ja immer... |
Bei WinSight einen Doppelklick auf den Button und sich dann die Fenster-ID merken. Diese entspricht deiner ButtonID.
|
Also..da stehen bei mir immer nur Nullen
Kann mir jemand sagen wo ich Spy++ oda sowas ähnliches herbekomm? Vielleicht hilft mir das |
Dann wird dieser Button wohl auch keine ID habe, sondern nur ein Handle.
Du könntest über EnumChildWindows mit bestimmten Kriterien wie z.B. die Caption des Buttons das aktuelle Handle des Buttons ermitteln. |
Moin Frankle,
wenn's Dir nur um die ID geht, kannst Du es hiermit versuchen:
Code:
Nur mit der linken Maustaste den Button anklicken, Taste gedrückt halten, und dann mit dem Cursor auf das fragliche Control gehen.
unit Main;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls; type TForm1 = class(TForm) SpeedButton1: TSpeedButton; Edit4: TEdit; procedure SpeedButton1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1 : TForm1; implementation {$R *.DFM} procedure TForm1.SpeedButton1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var ptCursor : TPoint; hWindow : DWord; begin repeat Application.ProcessMessages; GetCursorPos(ptCursor); hWindow := WindowFromPoint(ptCursor); Edit4.Text := IntToStr(GetWindowLong(hWindow,GWL_ID)); until GetAsyncKeyState(VK_LBUTTON) = 0; end; end. Erhältst Du keine ID (=0), ist es auch kein herkömmlicher Button. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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-2025 by Thomas Breitkreuz