當前位置:首頁 » 編程語言 » c語言怎麼查滑鼠鍵
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼查滑鼠鍵

發布時間: 2023-04-19 10:06:37

⑴ 用c語言怎麼判斷滑鼠在窗口的位置

用API函哪姿陸李頃數GetCursorPos()可以得到鼠冊茄標現在的位置:

//---------------------------------------------------------------------------

#include <stdio.h>
#include <windows.h>

int main(void)
{
POINT pt;

GetCursorPos(&pt);
printf("%ld %ld\n",pt.x,pt.y);

return 0;
}
//---------------------------------------------------------------------------

⑵ 在linux下編c語言的程序,我想判斷滑鼠的按鍵狀態,該怎麼寫程序啊HELP啊!

仔細看下這個頭文件input.h 和結構體 input_event 的描述吧,對你應該有幫助;
/*
* The event structure itself
*/

struct input_event {
struct timeval time;
__u16 type;
__u16 code;
__s32 value;
};

裡面有關於type、code、態游value值的介紹;
理解這個察閉掘之後,你就明白什麼時候代表按下滑鼠左鍵,什麼時候松開滑鼠左鍵,什麼時候按下滑鼠敗核右鍵、什麼時候松開滑鼠右鍵;

/*
* Event types
*/
......
#define EV_KEY 0x01
......

/*
* Keys and buttons , code values
*/
....
#define BTN_MOUSE 0x110
#define BTN_LEFT 0x110
#define BTN_RIGHT 0x111
#define BTN_MIDDLE 0x112
#define BTN_SIDE 0x113
#define BTN_EXTRA 0x114
#define BTN_FORWARD 0x115
#define BTN_BACK 0x116
#define BTN_TASK 0x117
.....

⑶ linux下C語言怎麼讀滑鼠左鍵

linux 下操作滑鼠的嫌鋒橡基兆函數都在"/dev/input/mice「 下。
有對應的函數可以操作滑鼠芹旁坐標,功能實現。

⑷ 請問C語言有哪些手段可以記錄滑鼠按鍵的時長,

處理WM_LBUTTONDOWN和 WM_LBUTTONUP消息
分別用GetTickCount()獲取時間, 兩虧散差者相減就是按下的掘此時長銷皮 (精確到毫秒)

⑸ VC下,C語言如何獲取滑鼠單擊位置高手請進。

VC下:先亮鋒餘映射ON_WM_LBUTTONDOWN消息,會產生函數void OnLButtonDown(UINT nFlags, CPoint point) ,point即是點基塵擊敬滾位置

⑹ c語言怎麼判斷是否點擊了滑鼠,簡單一點的方法,dev c++可以用的,謝謝各位大神。

#include<cstdio>
#include<windows.h>
#define棗鄭KEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)行爛?1:0)

intmain()
{
while(1)
{
printf("滑鼠左鍵是否按下:");
if(KEY_DOWN(VK_LBUTTON))printf("是");
elseprintf("否");
printf(" ");

printf("滑鼠右鍵是否按下:");
if(KEY_DOWN(VK_RBUTTON))printf("是");
else檔岩漏printf("否");
printf(" ");

Sleep(2000);
}
return0;
}

⑺ 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>
#definegSizek30//區域大小寬度
#definegSizeg20//區域大小高度
#definegBegin3//活動區域起始行
intmain()
{
intt=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
chargameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLEhInput=GetStdHandle(STD_INPUT_HANDLE);//獲取標准輸入設備句柄
INPUT_RECORDinRec;
DWORDres;
COORDp0;
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;i<gSizeg;i++)
{
for(j=0;j<gSizek+1;j++)
{
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=0;i<gSizeg;i++)
printf("%s ",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=0;i<gSizeg;i++)
{
//gameA[i][gSizeg+1]=0;
printf("%s ",gameA[i]);
}

}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAMEOVER!");
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);
return0;
}

⑻ c語言在控制台判定滑鼠左鍵是否點擊要用什麼函數

// temp1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
SetConsoleTitle("1111111111");
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 獲山頃野取標准輸入設備句柄
INPUT_RECORD inRec;
DWORD res;

while (1)
{
ReadConsoleInput(hInput, &inRec, 1, &res);
if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //逗喊滑鼠左乎梁鍵
{
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),inRec.Event.MouseEvent.dwMousePosition);
printf("Hello World!");
}
Sleep(100);
}
return 0;
}

⑼ c語言如何獲取滑鼠鍵盤信息

我估計你分數給的在高也沒人回答。來個這樣的代碼太麻煩了。而且網路金幣用處也不大。
不過,我可以寫幾個滑鼠函數給你參考一下。
首先了解一下滑鼠的中斷。
_ax=0x01
表示顯示游標
_ax=0x02
停止顯示游標
_ax=0x03
讀取游標位置與案件
_ax=0x04
設置游標位置
所以啊。根據這四個中斷,有以下幾個函數
----------------------------------------------------
void
mouseon(void)//滑鼠游標顯示
{
_ax
=
0x01;
geninterrupt(0x33);
}
----------------------------------------------------
void
mouseoff(void)//滑鼠游標隱藏
{
_ax
=
0x02;
geninterrupt(0x33);
}
---------------------------------------------------
void
mousesetxy(int
x,int
y)//設置當前位置
{
_cx
=
x,
_cd
=
y;
_ax
=
0x04;
geninterrupt(0x33);
}
---------------------------------------------------
int
leftpress(void)//滑鼠左鍵按下
{
_ax
=
0x33;
geninterrupt(0x33);
return(_bx&1);
}
-----------------------------------------------------
滑鼠右鍵的應該也會了吧。不過要return(_bx&2);
-----------------------------------------------------
void
mousegetxy(void)//得到當前位置
{
_ax
=
0x33;
geninterrupt(0x33);
mousex
=
_cx;
mousey
=
_dx;
}
---------------------------------------------------------------
最好要復制粘貼,打字打得手疼。

⑽ C語言如何檢測點擊的按鈕

通常很多情況下,會有這樣的事情,就是:

我們在運行某些程序的時候,發現按鈕置灰了,比如購買版權或者輸入序列號才能夠獲得訪問許可權。某個按鈕才允許點擊。

其實所有的這些東西都是 別的人或者公司利用一些編程語言調用windows的函數,實現的。所以如果我們也能調用windows的函數,那麼我們就能夠執行一些按鈕或者某些東西背後的函數。

自己的mfc還暫時 用不了,不過 可以 試試這個。

調出這個界面,看到有一個置灰的設置按鈕。我們可以試著調用這個後面的函數。

/*如何調出來?【在win7環境下】

打開控制面板

點擊滑鼠。*/

然後利用vs的工具中的spy++ x64。

進入查找窗口。

拖住這個到剛剛滑鼠的那個置灰的按鈕上面。就可以得到一個句柄。

句柄【在我理解,就是一個話把子,怎麼解釋,核隱敬就是,別人說一件事兒,你得順著往下說才能把話接下來,然後完成你想說的東西。在程序裡面,執行到這里,有這樣一個句柄,允許我們說話了,我們就從這一點開始,順著往攜蔽下說,往往就能得到我們想要的結果】

所以得到了句柄之後。我們可以新建一個工程。

#include <windows.h>

int main(){

SendMessage(0x001607E6,WM_LBUTTONDOWN,0,0);
SendMessage(0x001607E6,WM_LBUTTONUP,0,0);

return 0;
}

//在HWND的第一個參數裡面輸入剛剛的句柄。

//猜測 第二個參數 是 WindowManager_LeftButtonDown,就是窗口管理改慎器左鍵按鈕點下。

//然後左鍵按鈕彈起。

就強制的往剛剛不能執行的函數裡面發送了一個信息。前面的引文介紹說,這就是調用了windows底層的一些函數,如果按鈕可以點擊,則滑鼠點擊,按鈕按下,當需要注冊的時候,或者需要序列號的時候我們並沒有,就不能點擊。但是當我們給他發送一條消息以後,是不是問題就解決了。