c语言鼠标单击执行函数 c语言实现鼠标自动点击

C语言鼠标操作我之前给别人写过一个打地鼠的小游戏,就是用鼠标操作的 。发给你参考下 。代码很简单 。
主要函数我在下方说明了,但更多信息你必须自己百度看,一言两语说不完 。
SetConsoleCursorPosition函数可以定位光标位置,也就是文字内容显示的起点 。
ReadConsoleInput(HANDLE hConsoleInput,*INPUT_RECORD lpBuffer,DWORD nLength,
DWORD lpNumberOfEventsRead)函数可以获取鼠标的操作信息 。
调用过上面函数后,lpBuffer由于是传址,所以其地址里的值就包含了鼠标信息 。
lpBuffer.EventType == MOUSE_EVENT //判断是鼠标事件
lpBuffer.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED//判断是鼠标左键点击
两个判断一起就是鼠标左键点击的判断,其他事件参数你可以自己网上找 。
#include stdio.h
#include stdlib.h
#include windows.h
#include conio.h
#include time.h
#include string.h
#include malloc.h
#define gSizek 30//区域大小宽度
#define gSizeg 20//区域大小高度
#define gBegin 3//活动区域起始行
int main()
{
int t=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
char gameA[gSizeg][gSizek 1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
INPUT_RECORD inRec;
DWORD res;
COORD p0;
p0.X=0;
p0.Y=0;
srand(time(0));
s0= time(NULL);
strcpy(gameA[0],"GAME");
strcpy(gameA[1],"未命中次数:0,计分:000000");
for(i=gBegin-1;igSizeg;i)
{
for(j=0;jgSizek 1;j)
{
if(igBegin-1igSizeg-1j0jgSizek-1)
gameA[i][j]=' ';
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;igSizeg;i)
printf("%s\n",gameA[i]);
while (1)
{
if(t=3)
{
if(row0clo0)
gameA[row][clo]=' ';
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0= time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
if(row3)
row=4;
if(clo1)
clo=1;
gameA[row][clo]=2;
for(i=0;igSizeg;i)
{
//gameA[i][gSizeg 1]=0;
printf("%s\n",gameA[i]);
}
}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAME OVER!");
break;
}
s1= time(NULL);
t=s1-s0;
ReadConsoleInput(hInput, inRec, 1, res);
if (inRec.EventType == MOUSE_EVENTinRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠标左键
{
if(inRec.Event.MouseEvent.dwMousePosition.X==cloinRec.Event.MouseEvent.dwMousePosition.Y==row)
{
if(fen==0)
fen=1;
if(fen999999)
fen=999999;
else
fen=fen*2;
sprintf(fSave,"d",fen);
gameA[1][18]=0;
strcat(gameA[1],fSave);
}
else
{
count;
fen=0;
gameA[1][11]=count '0';
}
t=4;
}
}
while(1);
return 0;
}
C语言响应鼠标单击事件的函数吗没有响应函数c语言鼠标单击执行函数,而是消息c语言鼠标单击执行函数,点击鼠标以后,系统扑捉到消息然后传递给应用程序的消息处理函数,消息处理函数,根据switch语句进行判断 , 在相应的case下自己编写函数 。switch(msg) { case:WM_LBUTTONDOWN 自己编写的函数或语句
C语言是怎样实现鼠标事件控制的?可不可以用纯C做?可以,需要调用windowsAPI函数 。
头文件windows.h 。
简单思路:
通过GetStdHandle获取标准输入句柄 。
再通过ReadConsokeInput将输入信息存储到结构体类型INPUT_RECODE变量中 。
再通过判断 , 截取到鼠标电击的事件 。
具体API函数、参数、功能还有很多 。需要网上找资料可以学 。
我这里就简单写一个,鼠标点击控制台任意位置,并在该位置打印字符串 。
#include stdio.h
#include windows.h
int main()
{
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
INPUT_RECORD inRec;
DWORD res;
COORD p0;
while(1)
{
ReadConsoleInput(hInput, inRec, 1, res);
if (inRec.EventType == MOUSE_EVENTinRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠标左键
{
p0.X=inRec.Event.MouseEvent.dwMousePosition.X;
p0.Y=inRec.Event.MouseEvent.dwMousePosition.Y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("你在这里点击的左键\n");
}
}
return 0;
}
如何用c语言编写一个程序运行时控制鼠标自动移动点击图标执行程序用c语言写这个很麻烦的,其实有更好的工具 , ------《按键精灵》很好用,用它写点击图标的程序很简单,就几行代码,楼主可以试试,但如果你非要用c语言写的话可以去了解下系统给鼠标的api ,相对来说很麻烦的 。
-物联网校企联盟技术部
c语言:鼠标和键盘函数的相关问题首先最简单的但可以后台处理的有SendMessage()PostMessage()
发送鼠标,
键盘消息,
这个百度一搜n多c语言鼠标单击执行函数了
然后中等级的模拟就是keyboard_eventmouse_event了这个比较用的比较多,
给个例子c语言鼠标单击执行函数你
模拟键盘点击void
Press(UINT
key)
{
keybd_event(key,MapVirtualKey(key,
0),0,0);
keybd_event(key,MapVirtualKey(key,
0),KEYEVENTF_KEYUP,0);
}
模拟
鼠标左键单击mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
这里注意调用
keyboard_event
的时候一定要用MapVirtualKey
网上大部分的代码都是没用的,
这个函数时获取
硬件扫描码
的先说下keybd_event();函数的参数keybd_event(要模拟按下的虚拟按键码,
虚拟按键码对应的硬件扫描码,0,0);网上的代码大部分都有
虚拟按键码,
当然c语言鼠标单击执行函数你运行大部分都是没问题的,
因为对于一般的程序而言是没问题的但有的程序为了防止
外挂
或者
防止其c语言鼠标单击执行函数他程序恶意修改什么的,会对
鼠标键盘
消息进行检测,
如果检测到没有硬件扫描码会拒绝执行的
然后还有比较高级的就是SendInput模拟了void
OnSendCharCode(unsigned
short
unicode
=
0,unsigned
short
vcode
=
0,bool
bDown
=
false,bool
bUnicode
=
true);
void
OnSendCharCode(unsigned
short
unicode,unsigned
short
vcode,bool
bDown,bool
bUnicode)
{
unsigned
short
uNum
=
0;
//
v-code
Clicked
INPUT
事件设定
KEYBDINPUT
kDown;
KEYBDINPUT
kUp;
if(!bUnicode)
{
//
'A';
(Virtual
Code
只有大写),
要输入小写
//
Enter:
13,
Backspace:
8,
Up:38
kDown.wVk
=
kUp.wVk
=
vcode;
kDown.wScan
=
kUp.wScan
=
::MapVirtualKey(kDown.wVk,0);
//kDown.dwFlags
=
KEYEVENTF_EXTENDEDKEY;
kUp.dwFlags
=
KEYEVENTF_KEYUP;
}else{
kDown.wVk
=
kUp.wVk
=
0;
kDown.wScan
=
kUp.wScan
=
unicode;
kDown.dwFlags
=
KEYEVENTF_UNICODE;
kUp.dwFlags
=
KEYEVENTF_UNICODE
|
KEYEVENTF_KEYUP;
}
//
建立
KeyDown
事件
建立
KeyUP
事件
INPUT
inputKeyDown,
inputKeyUP;
inputKeyDown.type
=
inputKeyUP.type
=
INPUT_KEYBOARD;
//
指定
input

keyboard
kDown.time
=
kUp.time
=
0;
//
the
system
will
provide
its
own
time
stamp.
kDown.dwExtraInfo
=
kUp.dwExtraInfo
=
(WORD)::GetMessageExtraInfo();
inputKeyDown.ki
=
kDown;//
指定
键盘
属性结构
inputKeyUP.ki
=
kUp;
//
指定
键盘
属性结构
//
v-code
Clicked
INPUT
事件设定完成
//

INPUT
事件送到
Root
视窗,
系统会根据视窗位置,送给目标视窗
if(bDown)
{
INPUT
event[1]
=
{inputKeyDown};
uNum
=
::SendInput(1,event,
sizeof(INPUT));
}else{
INPUT
event[2]
=
{inputKeyDown,inputKeyUP};
uNum
=
::SendInput(2,event,
sizeof(INPUT));
}
}
//例子:
OnSendCharCode(0,VK_SHIFT,true,false);
OnSendCharCode(0,'A',false,false);
OnSendCharCode(0,VK_SHIFT,false,false);
OnSendCharCode(0,'A',false,false);
//KEYEVENTF_UNICODE
能区分大小写
OnSendCharCode('A');
OnSendCharCode('a');
不过还是有很多游戏,它是用
DirectX
技术去做的,这些大部分对c语言鼠标单击执行函数他们没用所以还有最最最高级的模拟,
就是
对硬件驱动程序的模拟这个有个外国人写的
winio.h
的头文件,
有兴趣可以去学,
一般用不到的,
C语言如何单步执行1、首先打开编辑代码c语言鼠标单击执行函数的软件,再定义一个int类型的变量a 。
2、然后设置变量a的设置为0,再用for语句进行循环 。
3、然后循环的次数,要和变量a进行比较 , 再进行a,如下图所示 。
4、接着要是想要无限循环的,就要定义一个int i , 再设置i等于1 。
5、然后用while语句,再用while语句接受i的数值 。
6、最后在while语句中,写入代码 。再用break就可以结束循环,如下图所示就完成c语言鼠标单击执行函数了 。
【c语言鼠标单击执行函数 c语言实现鼠标自动点击】关于c语言鼠标单击执行函数和c语言实现鼠标自动点击的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读