关于模拟鼠标的问题(100分)

Z

zykk

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说:我想利用程序在桌面实现选中几个图标的效果,为何下面代码的结果
只是简单的点击效果:
setcursorpos(1,1);
mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
//左键按下
setcursorpos(200,200);
mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
//左键释放
错在哪里,如何实现?
 
可以告诉你,你的代码非常好用。
你认为有错,也许是你使用鼠标执行的事件(不过我实验了,怎么执行都对呀。)
确实选中了几个图标。
 
写的挺好,
我的系统D版98se/D版delphi5和一只20块钱左右的2键破鼠标,
好使.
 
怎么回事,你们都行?没理由啊,我就是不行!我改用回车键执行事件,还是不行!!!
 
嘿嘿,你的操作系统?是否安装第三方鼠标驱动/增强程序?
 
我的系统:98se、delphi5、hp鼠标,未安装第三方鼠标驱动/增强程序!
其实,单击,双击,移动鼠标都能正常实现。就是上面不行。
 
嘿嘿,谁让你用那么高档的鼠标,看我们的,20多元的,都能用!
羡慕吧?呵呵,还是再找一下原因吧。也许代码有问题?不过我没看出来。
是不是你的实现方式?要最小化除你的程序外的所有窗体,然后在执行你的代码(这样更安全)
然后屏幕左上角(0,0)的位置不能有别的,要不,你将(0,0)改成(10,10)实验一下?
 
我改用如下:就能实现!!!是不是跟着的指令来不及执行?
setcursorpos(1,1);
mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
//左键按下
SLEEP(10);
//延迟
setcursorpos(200,200);
SLEEP(10);
mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
//左键释放
 
不会吧,你也不是双击?!
不过挺怪的,你到底是在SetCursorPos后面还是在Mouse_event后面加Sleep的?
你的两个有些冲突,找出到底使用哪一个有效,也许能分析出问题原因。
 
嘿,我的也要用延迟才能选中,15元的MOUSE,98年买的
 
再补充一句串口三键的
 
请继续讨论或结束
 
如果不行,改为如下:
一定行:)
setcursorpos(1,1);
mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
//左键按下
setcursorpos(200,200);
mouse_event( MOUSEEVENTF_MOVE , 0, 0, 0, 0 );

mouse_event( MOUSEEVENTF_LEFTUP , 0, 0, 0, 0 );
//左键释放
 

Similar threads

I
回复
0
查看
563
import
I
D
回复
0
查看
732
DelphiTeacher的专栏
D
D
回复
0
查看
792
DelphiTeacher的专栏
D
D
回复
0
查看
746
DelphiTeacher的专栏
D
顶部