求助:BCB,模拟鼠标事件问题
以下代码,在一般窗体中能模拟鼠标事件,但在桌面上模拟不响应,我的操作系统是WIN7,请问哪位有没有更好的方式?多谢!mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //模拟鼠标左键按下事件
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //模拟鼠标左键松开事件 继续求助……,期待高人出现
玩WINDOWS游戏,上网全部没问题。
但点击桌面或者WINDOWS文件夹只能响应一次。
代码如下,用空格键模拟鼠标左键。
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "windows.h"
#include "shellapi.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include <Mmsystem.h>
//---------------------------------------------------------------------------
TForm1 *Form1;
int f;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void WINAPI _timeSetEvent(UINT uTimerID,UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
POINT lpPoint;
GetCursorPos(&lpPoint);
SetCursorPos(lpPoint.x, lpPoint.y);
if(GetAsyncKeyState(VK_SPACE)&0x8000 )
{
if(f==0)
{
f=1;
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
}
}
else
{
if(f==1)
{
f=0;
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
}
}
void __fastcall TForm1::FormShow(TObject *Sender)
{
MMRESULT mr = timeSetEvent( 15,1, _timeSetEvent,0,TIME_PERIODIC); //15MS回调
f=0;
}
//--------------------------------------------------------------------------- void MouseClick(int x,int y)
{
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
Sleep(10);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
VC验证功能正常 谢谢指点!
在桌面点击还是不行,我生成了一个EXE文件,按下 空格 时,窗体为红色+模拟左键按下,放开时为为WINDOWS窗体颜色+模拟左键放开,颜色变化正常,但点击功能没有实现。
点击此处下载 ourdev_653292H1G14U.zip(文件大小:4.10M) (原文件名:Release.zip) 最关键是在别的软件界面使用正常,只有在桌面和WINDOWS文件夹里不正常。
页:
[1]