L Laird Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-09 #1 请问一下,如何让后台运行的程序对前台的产生影响。 比如说我要在一个商业软件上每过10分钟按一下F3,我该怎么写 分不多,只有100分
Y yydreamer Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-09 #4 在程序中调用Win API的Getkeyboardstate()函数。并使用timer控件,在timer 的ontimer中将timer.interval:=600000{10分钟}
D Dark Angel Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-09 #5 用一个定时器,时间到了后就向前台程序发一个WM_KeyDown 或 WM_KeyPress 消息的值设为你所要的:比如说 F3 关键是在于怎么得到前台程序的窗口句柄 可以使用 findwindow 但前提是前台程序的窗口标题栏字串不会改变!
用一个定时器,时间到了后就向前台程序发一个WM_KeyDown 或 WM_KeyPress 消息的值设为你所要的:比如说 F3 关键是在于怎么得到前台程序的窗口句柄 可以使用 findwindow 但前提是前台程序的窗口标题栏字串不会改变!
L Laird Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-09 #6 Getkeyboardstate怎么用啊。 key_down好像不怎么好用嘛
W wql Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-09 #7 首先自己查看需要按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 !!! 调试通过!给分吧!!!
首先自己查看需要按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 !!! 调试通过!给分吧!!!