欧美精品123_精品露脸国产偷人在视频_日韩美女免费线视频_成人av三级

return鍵盤上哪個(gè)鍵(鍵盤上的return鍵)

前沿拓展:

return鍵盤上哪個(gè)鍵


在電腦鍵盤上寫有Enter或return字樣的按鍵,被叫做“回車鍵”。其中Enter是Windows系統(tǒng)的叫法,而macOS中叫做return。

有的Windows電腦的enter按鍵會(huì)有一彎箭頭。

回車鍵有兩個(gè)作用,一是確認(rèn)輸入的執(zhí)行命令,是在文字處理中起換行的作用。

回車鍵也是電腦鍵盤上被用得較多的按鍵之一,使用回車鍵要注意:不要大力猛敲猛砸。


return鍵盤上哪個(gè)鍵(鍵盤上的return鍵)

大家好,我是安果!

對(duì)于鍵盤沒有背光燈的同學(xué)而言,切換大小寫或控制 Num 鍵開關(guān)的時(shí)候沒有提示,經(jīng)常需要試探性地輸入一些字符來(lái)判斷開關(guān)是否打開,體驗(yàn)非常糟糕

因此,有人就想到自制腳本這一招,一旦觸發(fā)大小寫切換或 Num 鍵切換就進(jìn)行 windows 通知提示:

https://github.com/skate1512/Toggle_Keys_Notification

今天我們來(lái)試試這個(gè)腳本,此外,我們還可以基于這個(gè)項(xiàng)目,擴(kuò)展成任意一個(gè)按鍵被觸發(fā)或切換都進(jìn)行 windows 通知的腳本:

return鍵盤上哪個(gè)鍵(鍵盤上的return鍵)

1.準(zhǔn)備

請(qǐng)選擇以下任一種方式輸入命令安裝依賴:1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD )2. MacOS 環(huán)境 打開 Terminal ( Command + 空格輸入Terminal )3. 如果你用的是 VSCode 編輯器 或 Pycharm,可以直接使用界面下方的Terminal

pip install win10toast

2.源碼使用與解析

2.1 源碼使用

作者的項(xiàng)目可以在 Toggle_Keys_Notification 項(xiàng)目?jī)?nèi),運(yùn)行 notify.py 啟動(dòng)**:

python notify.py

啟動(dòng)后點(diǎn)擊一下大小寫切換鍵,觸發(fā)通知?jiǎng)t說明代碼正常運(yùn)轉(zhuǎn):

return鍵盤上哪個(gè)鍵(鍵盤上的return鍵)

2.2 源碼分析

該項(xiàng)目通過 win32gui 和 win32con 實(shí)現(xiàn)了彈出 toast 進(jìn)行通知的功能,最核心的 _show_toast 代碼位于 toast.py 中

下面是這個(gè)函數(shù)的部分代碼剖析:

注冊(cè)和創(chuàng)建 window :

message_map = {WM_DESTROY: self.on_destroy, }# 注冊(cè)Windowself.wc = WNDCLASS()self.hinst = self.wc.hInstance = GetModuleHandle(None)self.wc.lpszClassName = str("PythonTaskbar") # 定義該窗口結(jié)構(gòu)的名稱self.wc.lpfnWndProc = message_maptry: self.classAtom = RegisterClass(self.wc)except: pass # Window格式style = WS_OVERLAPPED | WS_SY**ENU# 創(chuàng)建Windowself.hwnd = CreateWindow(self.classAtom, "Taskbar", style, 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, self.hinst, None)UpdateWindow(self.hwnd)

所使用到的 win32 模塊解析如下。

GetModuleHandle : 獲取一個(gè)應(yīng)用程序或動(dòng)態(tài)鏈接庫(kù)的模塊句柄。

WM_DESTROY : 關(guān)閉程序。

RegisterClass : 將定義好的Window屬性保存保存下來(lái)。

WS_OVERLAPPED : 重疊式窗口,該式樣窗口 帶有一個(gè)標(biāo)題欄和邊框。

WS_SY**ENU : 具有 SYSTEM 菜單欄的樣式

CW_USEDEFAULT : 采用系統(tǒng)默認(rèn)位置

CreateWindow 這個(gè)函數(shù)有非常多的參數(shù),甚至有一個(gè)百度百科來(lái)詳細(xì)解析每一個(gè)參數(shù)的具體作用,大家感興趣可以移步:

https://baike.baidu.com/item/CreateWindow/5076220

了解 win32 這些模塊名稱的意義后,理解上述代碼的邏輯便很輕松了

圖標(biāo)加載及任務(wù)欄圖標(biāo)顯示配置:

# 圖標(biāo)if icon_path is not None: # 獲取圖標(biāo)地址 icon_path = path.realpath(icon_path)else: icon_path = resource_filename(Requirement.parse("win10toast"), "win10toast/data/python.ico")# 加載格式icon_flags = LR_LOADFROMFILE | LR_DEFAULTSIZEtry: hicon = LoadImage(self.hinst, icon_path, IMAGE_ICON, 0, 0, icon_flags)except Exception as e: logging.error("Some trouble with the icon ({}): {}" .format(icon_path, e)) hicon = LoadIcon(0, IDI_APPLICATION)# 任務(wù)欄圖標(biāo)flags = NIF_ICON | NIF_MESSAGE | NIF_TIPnid = (self.hwnd, 0, flags, WM_USER + 20, hicon, "Tooltip")Shell_NotifyIcon(NIM_ADD, nid)Shell_NotifyIcon(NIM_MODIFY, (self.hwnd, 0, NIF_INFO, WM_USER + 20, hicon, "Balloon Tooltip", msg, 200, title, NIIF_ICON_MASK))# 等待一會(huì)后銷毀sleep(duration)DestroyWindow(self.hwnd)UnregisterClass(self.wc.lpszClassName, None)

這部分代碼控制了通知彈出框的展示和銷毀。如果你希望通知彈出框久一點(diǎn)再消失,可以適當(dāng)修改傳入的 duration 變量值。

DestroyWindow 后,通知彈出框便消失了,整個(gè) show_toast 的過程結(jié)束。

其實(shí)非常簡(jiǎn)單,從 CreateWindow 到 DestroyWindow 處理彈出框的各種屬性,然后注銷窗體,完成整個(gè)彈出流程

3.擴(kuò)展觸發(fā)通知

為了擴(kuò)展**的按鍵,并能**按鍵觸發(fā),需要先了解 notify.py 是如何檢測(cè)到按鍵變化的。

獲取按鍵狀態(tài):

keyboard = ctypes.WinDLL("User32.dll")VK_NUMLOCK = 0x90VK_CAPITAL = 0x14def get_capslock_state(): """Returns the current Caps Lock State(On/Off)""" return "Caps Lock On" if keyboard.GetKeyState(VK_CAPITAL) else "Caps Lock Off"def get_numlock_state(): """Returns The current Num Lock State(On/Off)""" return "Num Lock On" if keyboard.GetKeyState(VK_NUMLOCK) else "Num Lock Off"

可以看到,獲取按鍵狀態(tài)是通過 keyboard.GetKeyState(XXXX) 實(shí)現(xiàn)的。

而這個(gè)XXXX是對(duì)應(yīng)的按鍵的十六進(jìn)制,比如 VK_NUMLOCK 是Num鍵,對(duì)應(yīng)的16進(jìn)制代碼是0x90, VK_CAPITAL 是大小寫按鍵,對(duì)應(yīng)的十六進(jìn)制代碼是0x14.

變量名是可以用戶自定義的,比如大小寫鍵有些人習(xí)慣稱之為 VK_CAPITAL ,也有些人喜歡稱之為 VK_CAPITAL ,都可以,只要其最終對(duì)應(yīng)的變量值為十六進(jìn)制的0x14即可。

部分按鍵 16 進(jìn)制清單如下:

常數(shù)名稱

十六進(jìn)制值

對(duì)應(yīng)按鍵

VK_BACK

08

Backspace鍵

VK_TAB

09

Tab鍵

VK_CLEAR

0C

Clear鍵(Num Lock關(guān)閉時(shí)的數(shù)字鍵盤5)

VK_RETURN

0D

Enter鍵

VK_SHIFT

10

Shift鍵

VK_CONTROL

11

Ctrl鍵

VK_MENU

12

Alt鍵

VK_PAUSE

13

Pause鍵

VK_CAPITAL

14

Caps Lock鍵

再來(lái)看看**邏輯:

caps_curr = get_capslock_state()num_curr = get_numlock_state()while True: caps_change = get_capslock_state() num_change = get_numlock_state() if caps_curr != caps_change: if caps_change == "Caps Lock On": pop_up("Caps Lock On", "CapsLock_On.ico") else: pop_up("Caps Lock Off", "CapsLock_Off.ico") caps_curr = caps_change time.sleep(0.1) if num_curr != num_change: if num_change == "Num Lock On": pop_up("Num Lock On", "NumLock_On.ico") else: pop_up("Num Lock Off", "NumLock_Off.ico") num_curr = num_change time.sleep(0.2)

在剛開始運(yùn)行**腳本時(shí),先獲取到按鍵的狀態(tài),在循環(huán)體中,不斷地獲得當(dāng)前按鍵狀態(tài),如果發(fā)生了狀態(tài)變化,則觸發(fā) pop_up 函數(shù),彈出剛剛我們提到的 show_toast 函數(shù):

def pop_up(body, icon): """Generates Pop-up notification when state changes""" notification = ToastNotifier() notification.show_toast("Lock Key State", body, icon_path="assets\\"+icon, duration=1.5)

整套**并通知的機(jī)制還是非常簡(jiǎn)單的,如果我們想要自定義一些按鍵,你只需要在開頭添加對(duì)應(yīng)的按鍵的十六進(jìn)制編碼,然后添加一些**函數(shù)。

比如我們想** ESC 按鍵被按下: VK_ESCAPE=0x1B ,使用 keyboard 模塊添加一個(gè)鉤子函數(shù),**按鍵:

import keyboard as kbdef hook_esc(button): """Alert if ESC button is pressed""" esc_button = kb.KeyboardEvent('down', VK_ESCAPE, 'ESC') if button.event_type == 'down' and esc_button.name == button.name: pop_up("ESC Pressed", "CapsLock_On.ico") # 敲擊后回填為None button.event_type = None

然后再在循環(huán)體內(nèi)添加判斷邏輯:

kb.hook(hook_esc)

效果如下:

return鍵盤上哪個(gè)鍵(鍵盤上的return鍵)

當(dāng)然,圖標(biāo)和標(biāo)題還可以進(jìn)一步優(yōu)化:

比如:將 Lock Key State 這個(gè)標(biāo)題用 toast_title 變量替代,默認(rèn)為 Lock Key State。這樣在調(diào)用 pop_up 函數(shù)的時(shí)候就能自定義標(biāo)題了

最后效果圖如下:

return鍵盤上哪個(gè)鍵(鍵盤上的return鍵)

拓展知識(shí):

return鍵盤上哪個(gè)鍵

回車鍵,即鍵盤上的ENTER鍵,如果是標(biāo)準(zhǔn)鍵盤,一個(gè)是在主鍵盤區(qū)的右邊,就是字母區(qū)域最大面積的按鍵;還有一個(gè)是在右側(cè)小鍵盤區(qū)域的右下角,加號(hào)鍵的下面。以下是詳細(xì)介紹:

1、在標(biāo)準(zhǔn)鍵盤上,回車鍵一共有2個(gè),一個(gè)在主鍵盤區(qū)的右邊,Shift鍵的上面,就是字母區(qū)域最大面積的按鍵。

2、一個(gè)是在右側(cè)小鍵盤的右下角,加號(hào)鍵的下面,也有一個(gè)標(biāo)注為【Enter】的按鍵。

關(guān)于“回車鍵”的來(lái)歷,還得從機(jī)械英文打字機(jī)說起。在機(jī)械英文打字機(jī)上,有一個(gè)部件叫“字車”,每打一個(gè)字符(原為單詞,但是個(gè)人覺得這里應(yīng)該是字符),“字車”就前進(jìn)一格。

當(dāng)打滿一行字符后,打字者就得推動(dòng)“字車”到起始位置,這時(shí)打字機(jī)會(huì)有兩個(gè)動(dòng)作響應(yīng):一是“字車”被歸位,二是滾筒上卷一行,以便開始輸入下一行,這個(gè)推動(dòng)“字車”的動(dòng)作叫“回車”。后來(lái),在電動(dòng)英文打字機(jī)上,人們?cè)黾恿艘粋€(gè)直接起“回車”作用的鍵。這個(gè)新增的鍵就被稱為“回車鍵”。

在電腦鍵盤上,“回車鍵”上曾經(jīng)使用過“CR”、“RETURN”的字樣,后來(lái)才統(tǒng)一確定為“Enter”。

本回答被網(wǎng)友采納

return鍵盤上哪個(gè)鍵

回車鍵其實(shí)就是我們鍵盤上面標(biāo)示為“Enter”的那個(gè)鍵,這個(gè)鍵是我們?cè)谳斎胛淖值臅r(shí)候最常用的一個(gè)鍵,它的作用是用來(lái)?yè)Q行,比如你輸入完一段文字,想在下一行輸入下一個(gè)段落的時(shí)候,就可以按一下回車鍵,那么鼠標(biāo)的光標(biāo)就到了下一行去了,QQ聊天的時(shí)候,回車鍵默認(rèn)是消息發(fā)送按鍵,當(dāng)我們?cè)赒Q聊天框輸入完內(nèi)容,按一下回車鍵就可以發(fā)送了。

本回答被網(wǎng)友采納

return鍵盤上哪個(gè)鍵

回車鍵:電腦鍵盤上的“Enter”字樣的按鍵

return鍵盤上哪個(gè)鍵

就是這個(gè)。

原創(chuàng)文章,作者:九賢互聯(lián)網(wǎng)實(shí)用分享網(wǎng)小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.uuuxu.com/20220919472912.html

主站蜘蛛池模板: 灌云县| 桐乡市| 武平县| 荆州市| 新干县| 友谊县| 辰溪县| 长顺县| 安福县| 石林| 桃园市| 石棉县| 淳化县| 江川县| 长丰县| 武山县| 大名县| 古蔺县| 东乡| 长岭县| 巩留县| 南丰县| 栾川县| 怀化市| 张家界市| 临澧县| 延川县| 苍溪县| 凉城县| 安达市| 沙坪坝区| 合阳县| 观塘区| 镇康县| 无棣县| 南皮县| 望城县| 于都县| 太原市| 额尔古纳市| 贵南县|