首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

sendinput()模拟鼠标点符号击,点击到桌面后就不受控了!求教

2012-06-20 
sendinput()模拟鼠标点击,点击到桌面后就不受控了!求教程序如下:在任意程序中触发点击事件是可以的,只要鼠

sendinput()模拟鼠标点击,点击到桌面后就不受控了!求教
程序如下:在任意程序中触发点击事件是可以的,只要鼠标点击到桌面后,就不能再实现点击了,需要用鼠标点击下程序才可以继续使用模拟控制。
有什么解决的方法么?是不是因为活动窗口改变了,求教

void LeftClick () {  
INPUT Input={0};
// left down 
Input.type = INPUT_MOUSE; //可以是鼠标,也可以是键盘 
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1,&Input,sizeof(INPUT));
cout<<"LCD"<<endl;
// left up
::ZeroMemory(&Input,sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1,&Input,sizeof(INPUT)); 
cout<<"LCU"<<endl;
}

void RightClick(){
INPUTInputR={0};
//RightDown
InputR.type = INPUT_MOUSE;
InputR.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
::SendInput(1,&InputR,sizeof(INPUT));
cout<<"RCD"<<endl;
//RightUp
::ZeroMemory(&InputR,sizeof(INPUT));
InputR.type = INPUT_MOUSE;
InputR.mi.dwFlags = MOUSEEVENTF_RIGHTUP;
::SendInput(1,&InputR,sizeof(INPUT));
cout<<"RCU"<<endl;
}

[解决办法]
参考http://www.autohotkey.com源代码

热点排行