c语言如何实现控制鼠标

c语言如何实现控制鼠标,第1张

可以,需要调用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_EVENT && inRec.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

}

我之前给别人写过一个打地鼠的小游戏,就是用鼠标 *** 作的。发给你参考下。代码很陵兄腊简单。

主要函数我在下方说明了,但更多信息你必须自己百度看,一言两语说不完。

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-1i<gSizegi++)

    {

        for(j=0j<gSizek+1j++)

        {

            if(i>gBegin-1 && i<gSizeg-1 && j>0 && j<gSizek-1)

                gameA[i][j]=' '

            else

                gameA[i][j]=4

            if(j==gSizek)

                gameA[i][j]=0

        }

    }

    for(i=0i<gSizegi++)

        printf("%s\n",gameA[i])

    while (1)

    {

        if(t>=3)

        {

            if(row>0 && clo>0)

                gameA[row][clo]=' '

            row=rand()%(gSizeg-1)

       尺滑     clo=rand()%(gSizek-1)

            s0= time(NULL)

            SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0)

            if(row<3)

                row=4

            if(clo<1)

                clo=1

            gameA[row][clo]=2

            for(i=0i<gSizegi++)

            {

                //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_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠标左键

        {

            if(inRec.Event.MouseEvent.dwMousePosition.X==clo && inRec.Event.MouseEvent.dwMousePosition.Y==row)

            {

                if(fen==0)

                    fen=1

                if(fen>999999)

                    fen=999999

                else

                    fen=fen*2

                sprintf(fSave,"%06d",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语言颤闷编写,可以自茄颂弯定义设置时间,设置屏幕坐标,到时间鼠标会自动根据坐标的位置点击一次。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12511116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存