虚拟键盘(100分)

  • 主题发起人 主题发起人 Laird
  • 开始时间 开始时间
L

Laird

Unregistered / Unconfirmed
GUEST, unregistred user!
请问一下,如何让后台运行的程序对前台的产生影响。
比如说我要在一个商业软件上每过10分钟按一下F3,我该怎么写
分不多,只有100分
 
用定时器来发消息!!
 
能不能具体点
 
在程序中调用Win API的Getkeyboardstate()函数。并使用timer控件,在timer 的ontimer中将timer.interval:=600000{10分钟}
 
用一个定时器,时间到了后就向前台程序发一个WM_KeyDown 或 WM_KeyPress
消息的值设为你所要的:比如说 F3
关键是在于怎么得到前台程序的窗口句柄
可以使用 findwindow 但前提是前台程序的窗口标题栏字串不会改变!
 
Getkeyboardstate怎么用啊。


key_down好像不怎么好用嘛
 
首先自己查看需要按F3处的位置,例如为(x,y)
timer1.interval:=600000{10分钟}
procedure timer1time(sender:tobject);
begin
timer1.enabled:=false;

// 把鼠标移动到需要按F3的地方
SetCursorPos(x,y);

// 按下F3
keybd_event(VK_F3,MapVirtualKey(VK_F3,0),0,TmD);
Application.ProcessMessages;
keybd_event(VK_F3,MapVirtualKey(VK_F3,0),KEYEVENTF_KEYUP,TmD);

timer1.enabled:=true;
end;

不能用WM_KEYDOWN ,因为你不知道要按下地方的HWnd !!!

调试通过!给分吧!!!

 
哈哈,看你那么有信心,我就给了。
我都还没试呢!
 

Similar threads

D
回复
0
查看
835
DelphiTeacher的专栏
D
D
回复
0
查看
880
DelphiTeacher的专栏
D
D
回复
0
查看
617
DelphiTeacher的专栏
D
后退
顶部