|
写了一个调用WINDOWS API函数模拟鼠标点击的C语言程序,本来是用来做‘蒸汽幻想’的采矿外挂的,但是好像游戏程序屏蔽了这些API,不知有没有哪位有直接写硬件端口模拟鼠标点击的方法。
以下是代码:
#include<stdio.h>
#include<windows.h>
#include<dos.h>
typedef struct poi
{
long x;
long y;
}point;
int sd=0,choose=0;
point pt1,pt2,ptn;
main()
{
int i=0,j=0,x,y;
char key;
printf("Welcome to AutoClick program!!\n----QiuQ\n");
/*读取第一个点击点*/
key=getche();
if(key=='a'||key=='A')
GetCursorPos(&pt1);
printf("pt1.x = %ld , pt1.y = %ld\n",pt1.x,pt1.y);
/*读取第二个点击点*/
key=getche();
if(key=='b'||key=='B')
GetCursorPos(&pt2);
printf("pt2.x = %ld , pt2.y = %ld\n",pt2.x,pt2.y);
/*进入循环体*/
while(sd!=1)
{
GetCursorPos(&ptn);
if(ptn.x==0||ptn.y==0)
break;
else
{
if(choose==0)
{
SetCursorPos(pt1.x,pt1.y);
printf("clicking point one...%d\n",i);
mouse_event(MOUSEEVENTF_LEFTDOWN,pt1.x,pt1.y,0,0);
sleep(200);
mouse_event(MOUSEEVENTF_LEFTUP,pt1.x,pt1.y,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,pt1.x,pt1.y,0,0);
sleep(200);
mouse_event(MOUSEEVENTF_LEFTUP,pt1.x,pt1.y,0,0);
for(x=0;x<11;x++)
{
sleep(1000);printf("%d ",x);
}
printf("\n");
i++;
choose=1;
}
else if(choose==1)
{
SetCursorPos(pt2.x,pt2.y);
printf("clicking point two...%d\n",j);
mouse_event(MOUSEEVENTF_LEFTDOWN,pt2.x,pt2.y,0,0);
sleep(200);
mouse_event(MOUSEEVENTF_LEFTUP,pt2.x,pt2.y,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,pt2.x,pt2.y,0,0);
sleep(200);
mouse_event(MOUSEEVENTF_LEFTUP,pt2.x,pt2.y,0,0);
for(x=0;x<11;x++)
{
sleep(1000);printf("%d ",x);
}
printf("\n");
j++;
choose=0;
}
}
}
} |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|