使用C 開啟Caps lock鍵

2021-09-22 09:22:41 字數 1651 閱讀 6627

在.net winform應用程式中如何開啟capslock 鍵呢?或者在程式啟動的時候,capslock鍵就變亮了呢,今天在國外的乙個論談看到了解決方案,事實上很簡單的.我們只要dllimport attribute 去呼叫系統的函式就可以了.部分**如下:

privatevoidform1_load(objectsender, eventargs e)

[dllimport("user32.dll")]staticexternvoidkeybd_event(bytebvk,bytebscan,uintdwflags, uintptr dwextrainfo);

當熱行load的時候,caps lock的燈就亮了。呵呵。

dllimport..顧名思議.就是匯入dll檔案.讓c# 可以呼叫系統的的api.user32.dll是使用者介面的乙個api.據說sendkeys()這個方法也可以實現類似的功能。但我試過卻沒有效果。

那麼如何等獲得caps lock 的狀態呢:

// an umanaged function that retrieves the states of each key[dllimport("user32.dll", 

charset = charset.auto,

exactspelling =true,

callingconvention = callingconvention.winapi)]publicstaticexternshortgetkeystate(intkeycode);boolcapslock = (((ushort) getkeystate(0x14)) & 0xffff) != 0;boolnumlock = (((ushort) getkeystate(0x90)) & 0xffff) != 0;boolscrolllock = (((ushort) getkeystate(0x91)) & 0xffff) != 0;// show the statusmessagebox.show("caps lock is on: "+ capslock.tostring());

messagebox.show("num lock is on: "+ numlock.tostring());

messagebox.show("scroll lock is on: "+ scrolllock.tostring());

交換caps lock和ctrl鍵

交換capslock和ctrl鍵 直接在登錄檔中修改鍵位對映關係,cmd regedit.exe 登錄檔位置 hkey local machine system currentcontrolset control keyboard layout 如果沒有此鍵,就新建乙個 新建乙個二進位制值的key,...

交換左Ctrl鍵和Caps lock鍵

windows 10 windows registry editor version 5.00 hkey local machine system currentcontrolset control keyboard layout scancode map hex 00,00,00,00,00,00...

Qt獲取Capslock鍵(大小寫鍵)狀態

1.前言 最近需要qt獲取按鍵ascii碼,可是qkeyevent key 返回的是鍵碼,不是ascii碼 0 127 需要從鍵碼轉ascii碼。遇到的問題是不知道如何獲取capslock鍵狀態,說用lobyte getkeystate vk capital 但如何跨平台呢,qt不該只用window...