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

c語言組合鍵

發布時間: 2022-01-14 07:11:39

❶ window系統下 c語言 文件結束組合鍵怎麼按

在windows下 需要輸入ctrl+d來輸入文件結束符(EOF)。

方法為
1 按下ctrl,左右ctrl均可。
2 按一次d鍵,即按下抬起。注意這時大小寫都可以。
3 抬起ctrl。

輸入成功後,在屏幕上會顯示^D字樣。
需要注意的是,部分編譯器不支持特殊字元的實時響應,所以在輸入ctrl+D後,如果程序沒有獲取,還需要按回車以使程序響應。

❷ C語言編程有哪些快捷鍵

C語言編程一些快捷鍵如下:

CTRL + SHIFT + B生成解決方案

CTRL + F7生成編譯

CTRL + O打開文件

CTRL + SHIFT + O打開項目

CTRL + SHIFT + C顯示類視圖窗口

F4顯示屬性窗口

SHIFT + F4顯示項目屬性窗口

(2)c語言組合鍵擴展閱讀:

在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。

C語言其他的快捷方式:

Ctrl+shift+Enter在插入點之下插入一個空行

Ctrl+Delete刪除插入點右側的單詞

Ctrl+shift+(左/右方向鍵)查找上/下一個文本匹配項

Ctrl+end將插入點移動到文檔結尾的最後一行

Ctrl+home將插入點移動到文檔首行

Ctrl+Tab逐個窗口地循環通過MDI子窗口

Ctrl+B顯示「斷點」對話框,可添加和修改斷點

Ctrl+Z撤銷

Ctrl+Y反撤銷

Ctrl+W關閉程序

❸ C語言如何實現接受用戶輸入,如果按下crlt+w,組合鍵,就會出現hello ,按其他的退出

#include<cstdio>
intmain()
{
charch;
ch=getchar();

if(ch==23)
{
printf("Hello ");
}
else
{
return0;
}
}

❹ 在C語言中怎麼編程序才能讓鍵盤上的ESC、SHIFT、CTRL、ENTER等特殊鍵在屏幕上顯示還有組合鍵如CTRL+N

要捕捉系統的按鍵事件,一個鍵按下會產生一個事件,彈起又會產生一個,更詳細的可以參考windows編程第五版,當然,那個寫的是在win 98上的編程,但程序拿到win 7上也能編譯運行,我在x64的win 7上試過.
這些東西在標准C里好像也是有的,是那個 getch函數吧~

❺ c語言怎樣實現鍵盤操作

1.在Microsoft Windows 中,鍵盤和滑鼠是兩個標準的用戶輸入源,在一些交疊的操作中通常相互補充使用。當然,滑鼠在今天的應用程序中比10年前使用得更為廣泛。甚至在一些應用程序中,我們更習慣於使用滑鼠,例如在游戲、畫圖程序、音樂程序,以及Web創覽器等程序中就是這樣。然而,我們可以不使用滑鼠,但絕對不能從一般的PC中拆掉鍵盤。
Windows程序獲得鍵盤輸入的方式:鍵盤輸入以消息的形式傳遞給程序的窗口過程。實際上,第一次學習消息時,鍵盤就是一個明顯的例子:消息應該傳遞給應用程序的信息類型。
Windows用8種不同的消息來傳遞不同的鍵盤事件。這好像太多了,但是(就像我們所看到的一樣)程序可以忽略其中至少一半的消息而不會有任何問題。並且,在大多數情況下,這些消息中包含的鍵盤信息會多於程序所需要的。處理鍵盤的部分工作就是識別出哪些消息是重要的,哪些是不重要的。
2.鍵盤基礎知識
雖然應用程序在很多情況下可以通過滑鼠實現信息的輸入,但到現在為止鍵盤仍然是PC機中不可替代的重要輸入設備。
用鍵盤當作輸入設備,每當用戶按下或釋放某一個鍵時,會產生一個中斷,該中斷激活鍵盤驅動程序KEYBOARD.DRV來對鍵盤中斷進行處理。 KEYBOARD.DRV程序會根據用戶的不同操作進行編碼,然後調用Windows用戶模塊USER.EXE生成鍵盤消息,並將該消息發送到消息隊列中等候處理。
1.掃描碼和虛擬碼
掃描碼對應著鍵盤上的不同鍵,每一個鍵被按下或釋放時,都會產生一個唯一的掃描碼作為本身的標識。掃描碼依賴於具體的硬體設備,即當相同的鍵被按下或釋放時,在不同的機器上可能產生不同的掃描碼。在程序中通常使用由Windows系統定義的與具體設備無關的虛擬碼。在擊鍵產生掃描碼的同時,鍵盤驅動程序KEYBOARD.DRV截取鍵的掃描碼,然後將其翻譯成對應的虛擬碼,再將掃描碼和虛擬碼一齊編碼形成鍵盤消息。所以,最後發送到消息隊列的鍵盤消息中,既包含了掃描碼又包含了虛擬碼。
經常使用的虛擬碼在WINDOWS.H文件中定義,常用虛擬碼的數值、常量符號和含義如表所示。

取值(16進制) 常量符號 含義
01 VK_LBUTTON 滑鼠左鍵
02 VK_RBUTTON 滑鼠右鍵
03 VK_CANCEL Break中斷鍵
04 VK_MBUTTON 滑鼠中鍵
05-07 -- 未定義
08 VK_BACK (BackSpace)鍵
09 VK_TAB Tab鍵
0A-0B -- 未定義
0C VK_CLEAR Clear鍵
0D VK_RETURN Enter鍵
0E-0F -- 未定義
10 VK_SHIFT Shift鍵
11 VK_CONTROL Ctrl鍵
12 VK_MENU Alt鍵
13 VK_PAUSE Pause鍵
14 VK_CAPTIAL CapsLock鍵
15-19 -- 漢字系統保留
1A -- 未定義
1B VK_ESCAPE Esc鍵
1C-1F -- 漢字系統保留
20 VK_SPACE 空格鍵
21 VK_PRIOR PageUp鍵
22 VK_NEXT PageDown鍵
23 VK_END End鍵
24 VK_HOME Home鍵
25 VK_LEFT ←(Left Arrow)鍵
26 VK_UP ↑(Up Arrow)鍵
27 VK_RIGHT →(Right Arrow)鍵
28 VK_DOWN ↓(Down Arrow)鍵
29 VK_SELECT Select鍵
2A -- OEM保留
2B VK_EXECUTE Execute鍵
2C VK_SNAPSHOT Print Screen鍵
2D VK_INSERT Insert鍵
2E VK_DELETE Delete鍵
2F VK_HELP Help鍵
30-39 VK_0-VK_9 數字鍵0-9
3A-40 -- 未定義
41-5A VK_A-VK_Z 字母鍵A-Z
5B-5F -- 未定義
60-69 VK_NUMPAD0-VK_NUMPAD9 小鍵盤數字鍵0-9
6A VK_MULTIPLY *(乘號)鍵
6B VK_ADD +(加號)鍵
6C VK_SEPAPATOR 分隔符鍵
6E VK_SUBTRACT -(減號)鍵
6F VK_DECIMAL .(小數點)鍵
70-87 VK_DIVIDE /(除號)鍵
88-8F VK_F1-VK_F24 F1-F24功能鍵
90 VK_NUMBERLOCK Number lock鍵
91 VK_SCROLL Scroll lock鍵
92-B9 -- 未定義
BA-C0 -- OEM保留
C1-DA -- 未定義
DB_E4 -- OEM保留
E5 -- 未定義
E6 -- OEM保留
E7-E8 -- 未定義
E9-F5 -- OEM保留
F6-FE -- 未定義

2.輸入焦點
同一時刻,Windows中可能有多個不同的程序在運行,也就是說有多個窗口同時存在。這時,鍵盤由多個窗口共享,但只有一個窗口能夠接收到鍵盤消息,這個能夠接收鍵盤消息的窗口被稱為擁有輸入焦點的窗口。
擁有輸入焦點的窗口應該是當前的活動窗口,或者是活動窗口的子窗口,其標題和邊框會以高亮度顯示,以區別於其他窗口。擁有輸入焦點的也可以是圖標而不是窗口,此時,Windows也將消息發送給圖標,只是消息的格式略有不同。
窗口過程可以通過發送WM_SETFOCUS和 WM_KILLFOCUS消息使窗體獲得或失去輸入焦點。程序也可以通過捕獲WM_SETFOCUS和WM_KILLFOCUS消息來判斷窗體何時獲得或失去輸入焦點。其中WM_SETFOCUS消息表示窗口正獲得輸入焦點,WM_ KILLFOCUS消息表示窗口正失去輸入焦點。
3.鍵盤消息
鍵盤消息分為系統鍵消息和非系統鍵消息。系統鍵消息是指由Aft鍵和其他鍵組合而產生的按鍵消息。當系統鍵被按下時產生WM_ SYSKEYDOWN消息,當系統鍵被釋放時產生WM_SYSKEYUP消息。 Aft鍵與其他鍵形成的組合鍵通常用於對程序菜單和系統菜單進行選擇,或用於在不同的程序之間進行切換。因此,系統鍵消息應該交由Windows進行處理,用戶所編制的程序一般不處理系統鍵消息,而是將這些消息交由DefWindowProc函數進行處理。如果用戶想對系統鍵消息進行處理,應該在處理完這些消息後,再將其發送給DefWindowProc函數,使得Windows系統能夠正常工作。
某些擊鍵消息可以被轉換成字元消息,例如字母鍵、數字鍵等。而有些鍵只能產生按鍵消息而沒有字元消息,例如 Shift鍵、Insert鍵等。消息循環中的 TranslateMessage函數可以實現從擊鍵消息向字元消息的轉化。當GetMessage函數捕獲一個WM_SYSKEYDOWN消息或 WM_KEYDOWN消息後,TranslateMessage函數判斷產生該消息的鍵是否能夠被轉換成字元消息,如果能,就將該消息轉換成字元消息,再通過DispatchMessape函數將轉換後的字元消息發送到消息隊列中去。字元消息共有以下四種,如表所示。

字元 系統字元 非系統字元
普通字元 WM_SYSCHAR WM_CHAR
死字元 WM_SYSDEADCHAR WM_DEADCHAR

其中死字元是由某些特殊鍵盤上的按鍵所造成的,Windows一般忽略死字元所產生的消息。
Windows的消息一般是通過一個MSG結構體變數傳送給消息處理函數的。對於鍵盤消息, MSG結構體變數的各個域中較重要的是lParam域和 wParam域。wParam域用於保存按鍵的虛擬鍵代碼或字元的ASCII碼。對於非字元消息,wParam域保存按鍵的虛擬健代碼;對於字元消息, wParam域不保存字元的ASCII碼。lParam域則用於保存擊鍵時產生的附加信息,實際上一個32位的lParam變數被分為六部分,記錄了以下相關信息:重復次數、OEM掃描碼、擴展鍵標志、關聯鍵標志、前一擊鍵狀態和轉換狀態。lParam域各位的含義如表所示。

位數 含義
0-15 擊鍵重復次數累加
16-23 OEM掃描碼
24 是否為擴展鍵
25-28 未定義
29 是否便用關聯鍵,及Alt鍵是否同時按下。
30 前一次擊鍵狀態,0表示該鍵前一次狀態為抬起,1表示前一次狀態為按下
31 轉換狀態

按鍵的次序不同,產生的消息也不相同。例如,按下並釋放1鍵,讀過程依次產生如表所示三條消息。按下1鍵所產生的消息和wParam的取值

消息 wParam變數取值
WM_KEYDOWN 虛擬碼1
WM_CHAR ASCII碼「1」
WM_KEYUP 虛擬碼1

如果按下Shift鍵後再按下1鍵並釋放,則依次產生如表所示的消息。按下 Shift鍵後按 1健所產生的消息和 wParam的取值

消息 wParam變數取值
WM_KEYDOWN 虛擬碼 VK_SHIFT
WM_KEYDOWN 虛擬碼 VK_1
WM_CHAR ASCII碼「1」
WM_KEYUP 虛擬碼 VK_1
WM_KEYUP 虛擬碼 VK_SHIF

鍵盤應用實例
下面通過一個應用程序實例來說明在實際編程中如何處理鍵盤消息。

#include <windows.h>
#include <stdio.h>
// 全局變數
RECT rc; //記錄滾屏的矩形區域
int xChar, yChar; //文本輸入點坐標
WNDCLASSEX wnd; //窗口類結構變數
char szAppName[] = "鍵盤消息監視程序"; //窗口類名
//函數聲明
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
BOOL MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE hInstance,int iCmdShow);
//函數:WinMain
//作用:入口函數
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)
{
MSG msg;
if(!MyRegisterClass(hInstance))
{
return FALSE;
}

if(!InitInstance(hInstance,iCmdShow))
{
return FALSE;
}

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}
//函數:ShowKey
//作用:實現在窗口中顯示按鍵信息
void ShowKey (HWND hwnd, int iType,char *szMessage,WPARAM wParam,LPARAM lParam)
{
static char *szFormat[2] ={"%-14s %3d %c %6u %4d %5s %5s %6s %6s",
"%-14s %3d %c %6u %4d %5s %5s %6s %6s" };
char szBuffer[80];
HDC hdc;
ScrollWindowEx(hwnd, 0, -yChar, &rc,&rc,NULL,NULL,SW_INVALIDATE);
hdc = GetDC (hwnd);
SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));
TextOut (hdc,
xChar,
rc.bottom - yChar,
szBuffer,
wsprintf szBuffer,
szFormat[iType],
szMessage, //消息
wParam, //虛擬鍵代碼
(BYTE) (iType ? wParam :『 』),//顯示字元值
LOWORD (lParam), // 重復次數
HIWORD (lParam) & 0xFF, // OEM鍵盤掃描碼
//判斷是否為增強鍵盤的擴展鍵
(PSTR) (0x01000000 & lParam ? 「是」 : 「否」),
//判斷是否同時使用了ALT鍵
(PSTR) (0x20000000 & lParam ? 「是」 : 「否」),
(PSTR) (0x40000000 & lParam ? 「按下」 : 「抬」),
//判斷前一次擊鍵狀
(PSTR)(0x80000000 & lParam ? 「按下」 : 「抬起」))
//判斷轉換狀態?
);
ReleaseDC (hwnd, hdc); ?
ValidateRect (hwnd, NULL); ?
}
//函數:WndProc
//作用:處理主窗口的消息
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
static char szTop[] ="消息鍵 字元 重復數 掃描碼 擴展碼 ALT 前一狀態 轉換狀態";
static char szUnd[] ="_______ __ ____ _____ ______ ______ ___ _______ ______";
//在窗口中輸出文字作為信息標題
HDC hdc;
PAINTSTRUCT ps;
TEXTMETRIC tm;
switch (iMsg)
{
case WM_CREATE://處理窗口創建的消息
hdc = GetDC (hwnd); //設定字體
SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)); //檢取當前字體的度量數據
GetTextMetrics (hdc, &tm);
xChar = tm.tmAveCharWidth;//保存字體平均寬度
yChar = tm.tmHeight; //保存字體高度
ReleaseDC (hwnd, hdc);
rc.top = 3 * yChar / 2;
return 0;
case WM_SIZE://處理窗口大小改變的消息
//窗體改變後保存新的滾屏區域右下角坐標
rc.right = LOWORD (lParam);
rc.bottom = HIWORD (lParam);
UpdateWindow (hwnd);
return 0;
case WM_PAINT: //處理窗口重繪消息
InvalidateRect (hwnd, NULL, TRUE);
hdc = BeginPaint (hwnd, &ps);
SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)) ;
SetBkMode (hdc, TRANSPARENT) ;
TextOut (hdc, xChar, yChar / 2, szTop, (sizeof szTop) - 1) ;
TextOut (hdc, xChar, yChar / 2, szUnd, (sizeof szUnd) - 1) ;
EndPaint (hwnd, &ps);
return 0;
case WM_KEYDOWN:
//處理鍵盤上某一鍵按下的消息
ShowKey (hwnd, 0, "WM_KEYDOWN",wParam, lParam);
return 0;
case WM_KEYUP:
//處理鍵盤上某一按下鍵被釋放的消息
ShowKey (hwnd, 0, "WM_KEYUP", wParam, lParam);
return 0;
case WM_CHAR:
//處理擊鍵過程中產生的非系統鍵的可見字元消息
howKey (hwnd, 1, "WM_CHAR", wParam, lParam);
return 0;
case WM_DEADCHAR:
//處理擊鍵過程中產生的非系統鍵"死字元"消息
ShowKey (hwnd, 1, "WM_DEADCHAR", wParam, lParam);
return 0;
case WM_SYSKEYDOWN:
//處理系統鍵按下的消息
ShowKey (hwnd, 0, "WM_SYSKEYDOWN",wParam, lParam);
break;
case WM_SYSKEYUP:
//處理系統鍵抬起的消息
ShowKey (hwnd, 0, "WM_SYSKEYUP", wParam, lParam);
break;
case WM_SYSCHAR://處理系統鍵可見字元消息
ShowKey (hwnd, 1, "WM_SYSCHAR", wParam, lParam);
break;
case WM_SYSDEADCHAR://處理系統鍵"死字元"消息
ShowKey (hwnd, 1, "WM_SYSDEADCHAR", wParam, lParam);
break;
case WM_DESTROY:
//處理結束應用程序的消息
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam);
}
//函數:MyRegisterClass
//作用:注冊窗口類
BOOL MyRegisterClass(HINSTANCE hInstance)
{
wnd.cbSize= sizeof (wnd);
wnd.style = CS_HREDRAW | CS_VREDRAW;
wnd.lpfnWndProc = WndProc;
wnd.cbClsExtra = 0;
wnd.cbWndExtra = 0;
wnd.hInstance = hInstance;
wnd.hIcon = LoadIcon (NULL, IDI_APPLICATION);?
wnd.hCursor = LoadCursor (NULL, IDC_ARROW);
wnd.hbrBackground = (HBRUSH)
GetStockObject (WHITE_BRUSH);
wnd.lpszMenuName = NULL;
wnd.lpszClassName = szAppName;
wnd.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
return RegisterClassEx (&wnd);
}
//函數:InitInstance
//作用:創建主窗口
BOOL InitInstance(HINSTANCE hInstance,int iCmdShow)
{
HWND hwnd;
hwnd = CreateWindow (szAppName,
"鍵盤消息監視程序",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL
);
if(!hwnd)
{
return FALSE;
}
ShowWindow (hwnd, iCmdShow);
UpdateWindow (hwnd);
return TRUE;
}

❻ c語言中用bioskey接受組合鍵怎麼弄啊比如說我想當按下alt+x時來結束程序,怎麼寫啊

看看這個
#include <stdio.h>
#include <bios.h>
#include <ctype.h>
#define RIGHT 0x01
#define LEFT 0x02
#define CTRL 0x04
#define ALT 0x08
int main(void)
{
int key, modifiers;
/* function 1 returns 0 until a key is pressed */
while (bioskey(1) == 0);
/* function 0 returns the key that is waiting */
key = bioskey(0);
/* use function 2 to determine if shift keys were used */
modifiers = bioskey(2);
if (modifiers)
{
printf("[");
if (modifiers & RIGHT) printf("RIGHT");
if (modifiers & LEFT) printf("LEFT");
if (modifiers & CTRL) printf("CTRL");
if (modifiers & ALT) printf("ALT");
printf("]");
}
/* print out the character read */
if (isalnum(key & 0xFF))
printf("'%c'\n", key);
else
printf("%#02x\n", key);
return 0;
}

❼ c語言中的快捷鍵有哪些

快捷鍵,指的是一個軟體的快捷鍵,例如windows的快捷鍵ctrl+c是復制,ctrl+v是粘貼
一個語言怎麼會有快捷鍵呢?你問的快捷鍵,應該是你用的C編譯器的IDE軟體的快捷鍵吧,這個應該搜相應的軟體說明文檔啊

❽ c語言的組合鍵大全及解析可以的話說說c語言的一些知識

aggregation 聚合、聚集algorithm 演算法alias 別名align 排列、對齊allocate 分配、配置allocator分配器、配置器angle bracket 尖括弧annotation 註解、評注API (Application Programming Interface) 應用(程序)編程介面app domain (application domain)應用域application 應用、應用程序application framework 應用程序框架appearance 外觀append 附加architecture 架構、體系結構archive file 歸檔文件、存檔文件argument引數(傳給函式的值)。參見parameterarray 數組arrow operator 箭頭操作符ASP(Active Server Page)活動伺服器頁面ASP.NET worker process ASP.NET工作者進程assembly 裝配件、配件assembly language 匯編語言assembly manifest 裝配件清單assert(ion) 斷言assign 賦值assignment 賦值、分配assignment operator 賦值操作符associated 相關的、相關聯的associative container 關聯式容器(對應sequential container)asynchronous 非同步的atomic 原子的atomic operation 原子操作attribute 特性、屬性authentication service 驗證服務authorization 授權audio 音頻A.I. 人工智慧B2B integration B2B整合、B2B集成(business-to-business integration)background 背景、後台(進程)backward compatible 向後兼容、向下兼容backup 備份backup device備份設備backup file 備份文件bandwidth 帶寬base class 基類base type 基類型batch 批處理BCL (base class library)基類庫binary 二進制binary search 二分查找binary tree 二叉樹binary function 雙參函數binary large object二進制大對象binary operator 二元操作符binding 綁定bit 位bitmap 點陣圖bitwise 按位...bitwise 為單元進行復制;位元逐一復制,按位拷bitwise operation 按位運算block 塊、區塊、語句塊bookkeeping 簿記boolean 布林值(真假值,true或false)border 邊框bounds checking 邊界檢查boxing 裝箱、裝箱轉換brace (curly brace) 大括弧、花括弧bracket (square brakcet) 中括弧、方括弧breakpoint 斷點browser applications 瀏覽器應用(程序)browser-accessible application 可經由瀏覽器訪問的應用程序build 編連(專指編譯和連接built-in 內建、內置bus 匯流排business 業務、商務(看場合)business Logic 業務邏輯business rules 業務規則buttons 按鈕bug 臭蟲by/through 通過byte 位元組(由8 bits組成)cache 高速緩存calendar 日歷call 調用callback 回調call-level interface (CLI)調用級介面(CLI)call operator 調用操作符candidate key 候選鍵 (for database)cascading delete 級聯刪除 (for database)cascading update 級聯更新 (for database)casting 轉型、造型轉換checkpoint 檢查點 (for database)

❾ C51單片機矩形鍵盤的組合鍵怎樣實現(C語言)

為了你這個問題,我特地找出來我2008年寫的東西。
http://bbs.ednchina.com/BLOG_ARTICLE_179242.HTM
我經常使用掃描鍵盤的組合鍵。你看了我2008年寫的這篇文章,應該就有思路了。我的這種按鍵處理機制,非常的好用,我所有項目中的按鍵處理都是基於這種思想的。

❿ c語言編程時有沒有組合鍵控制方向

gvim默認所以按鈕都不是輸入,而是方向,復制,定位,還有一些高級功能,進入插入模式才是插入。還有就是eclipe也可以設置高級快捷鍵。其他文本編譯器我不熟悉,你問問別人