构思:
已有一个可执行程序a,现在想写另一可执行程序b,用b来运行a,在a运行时需要登录,其按钮是TSpeedButton。如果是一般的TButton我可以用消息机制向登录按钮发一个click消息,而TSpeedButton由于没有句柄,没法发,请问高手怎么解决啊
已有一个可执行程序a,现在想写另一可执行程序b,用b来运行a,在a运行时需要登录,其按钮是TSpeedButton。如果是一般的TButton我可以用消息机制向登录按钮发一个click消息,而TSpeedButton由于没有句柄,没法发,请问高手怎么解决啊
算出登陆按钮在屏幕上的位置
模拟鼠标按下mouse_event
能不能给个简单的例子,事太急了
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
Edit1: TEdit;
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
i : Integer;implementation{$R *.dfm}procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
edit1.Text := 'OK!';
showmessage('ok');
end;end.
////////////////////////
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;type
TForm2 = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementationuses Unit1;{$R *.dfm}procedure TForm2.BitBtn1Click(Sender: TObject);
var
tp: TPoint;
begin
form1.show;
//form1.SpeedButton1.OnMouseDown
tp.X := 370;//数值自己确定一下
tp.Y := 320;
SetCursorPos(tp.x, tp.y);
mouse_event(MOUSEEVENTF_LEFTDOWN, tp.x, tp.y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, tp.x, tp.y, 0, 0);end;end.
D7下测试通过,记得给分哦
不行啊
好像要把窗口搞到最前面才可以还是什么的