विंडोज़ 10 में नियंत्रण के लिए नक्शा कैपलॉक


82

विंडोज़ 8 में मैंने रजिस्ट्री स्क्रिप्ट का उपयोग करके नियंत्रित करने के लिए अपनी कैप्सलॉक कुंजी को फिर से तैयार किया

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00

विंडो 10 में अपग्रेड होने के बाद, यह काम नहीं करता है। यह कैसे किया जा सकता है?


ध्यान दें कि यह केवल कैप्स लॉक को किसी अन्य Ctrl कुंजी पर रीमैप करता है। मैं उन्हें अदला-बदली करना चाहता हूं, इसलिए मैंने ऊपर दिए गए स्क्रिप्ट को ट्वीक करने के लिए यहां निर्देशों का उपयोग किया: superuser.com/a/1202601/315584
jia103

जवाबों:


86

क्या आपको फिर से बूट करने की याद आई? मेरे लिए ठीक काम करने लगता है, जैसे 7 और 8 में।

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00

9
मेरे लिए मुद्दा यह था कि विंडोज 10 अपग्रेड ने मेरे कैप लॉक मैपिंग को रीसेट कर दिया। लेकिन फिर से उसी तरह से करना एक और पुनरारंभ के बाद काम किया।
जैक ओ'कॉनर

38
अगर मेरे जैसे किसी और को पहेली के अंतिम टुकड़े की आवश्यकता है: उपरोक्त को एक नई टेक्स्ट फ़ाइल में पेस्ट करें, इसे .regएक्सटेंशन के साथ सहेजें , रजिस्ट्री में परिवर्तन लागू करने के लिए फ़ाइल पर डबल क्लिक करें, फिर रिबूट करें।
माइक नीबलिंग

4
आप इसे Caps Lockबाद में कैसे मैप करते हैं ?
एहतेश चौधरी

7
@EesheshChoudhury आप रजिस्ट्री कुंजी के तहत "स्कैनकोड मैप" प्रविष्टि को हटा सकते हैं, रिबूट और डिफ़ॉल्ट व्यवहार को बहाल किया जाएगा।
बोजोलाइस

75

यदि किसी को पॉवरशेल के माध्यम से इसकी आवश्यकता हो तो:

$hexified = "00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00".Split(',') | % { "0x$_"};

$kbLayout = 'HKLM:\System\CurrentControlSet\Control\Keyboard Layout';

New-ItemProperty -Path $kbLayout -Name "Scancode Map" -PropertyType Binary -Value ([byte[]]$hexified);

इसे व्यवस्थापक के रूप में चलाएं और रिबूट करें।


16
एक लिनक्स की तरह "शेल में कॉपी और पेस्ट" उत्तर देने के लिए एक उत्थान है!
माइकज़्टर

3
गंभीरता से। मुझे याद आ रही है * initrc स्क्रिप्ट। धन्यवाद।

6
आपने सर, विंडोज का उपयोग करके आज थोड़ा कम दुखी अनुभव किया है। उस के लिए, मुझे आपको धन्यवाद देना है।
बाइनरीमासन

18

आप Windows 7, 8, या 10. में किसी भी अन्य कुंजी को मैप करने के लिए SharpKeys का उपयोग कर सकते हैं । अपने आप को रजिस्ट्री को संशोधित करने की तुलना में यह करना बहुत आसान और क्लीनर है।

उम्मीद है की यह मदद करेगा।


2
क्या मैं कैप्स लॉक दबाकर भाषाओं को स्विच करने के लिए इसका उपयोग कर सकता हूं?
thanos.a

13

मैं CAPS LOCK कुंजी के लिए CTRL भेजने के लिए निम्नलिखित का उपयोग करता हूं, CTRL कुंजी के लिए ALT भेजें, और ALT कुंजी के लिए CAPS LOCK भेजें। CTRL "A" के बाईं ओर है जहां भगवान ने इरादा किया था, ALT SHIFT से नीचे है, और पूरी तरह से बेकार CAPS LOCK कुंजी को सुरक्षित रूप से दूर रखा गया है जहां मुझे इसे हिट करने के लिए अपनी कलाई को तोड़ना होगा।

Windows Registry Editor Version 5.00

; The hex data is in five groups of four bytes:
;   00,00,00,00,\    header version (always 00000000)
;   00,00,00,00,\    header flags (always 00000000)
;   04,00,00,00,\    # of entries (3 in this case) plus a NULL terminator line.
;                    Entries are in 2-byte pairs: Key code to send & keyboard key to send it.
;                    Each entry is in LSB, MSB order.
;   1d,00,3a,00,\    Send LEFT CTRL (0x001d) code when user presses the CAPS LOCK key (0x003a) 
;   38,00,1d,00,\    Send LEFT ALT (0x0038) code when user presses the LEFT CTRL key (0x001d) 
;   3a,00,38,00,\    Send CAPS LOCK (0x3A) code when user presses the LEFT ALT key (0x0038) 
;   00,00,00,00      NULL terminator

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,\
                   00,00,00,00,\
                   04,00,00,00,\
                   1d,00,3a,00,\
                   38,00,1d,00,\
                   3a,00,38,00,\
                   00,00,00,00

4
मैं वास्तव में टिप्पणियों की सराहना करता हूं। मैं हमेशा सोचता था कि कोड्स का क्या मतलब है। बहुत उपयोगी।
zaphodtx

3

यह CTRL और CAPS LOCK कुंजियों को स्वैप करने की स्क्रिप्ट है:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,3a,00,1d,00,00,00,00,00

2

CapsLock में भाषा इनपुट को रीमैप करने के लिए आप lswitch का उपयोग कर सकते हैं ।

इनपुट भाषाओं को स्विच करने के लिए किसी भी कुंजी का उपयोग करें, उपयोग lswitch [keycode]:। Keycode वैकल्पिक है और संदर्भ मेनू कुंजी के लिए डिफ़ॉल्ट है। एक और अच्छा उम्मीदवार 20 के कीकोड के साथ एक कैप्सलॉक कुंजी है।

lswitch 20

इसे ऑटोलैड में जोड़ें।


यह काम करता है, हालांकि कैप्स लॉक की कार्यक्षमता खो जाती है। किसी भी विचार कैसे शिफ्ट लॉक कैप कार्यक्षमता को परिभाषित करने के लिए + कैप्स लॉक संयोजन?
thanos.a

2

मैंने ऐसा करने के लिए AutoHotKey का उपयोग किया।

मेरे पास बहुत ही मूल ahk स्क्रिप्ट चलाने के लिए स्टार्टअप निर्देशिका में एक लिंक होगा:

Capslock::Ctrl

बात यह है कि, ऑटोहोट्की को प्रशासक के रूप में नहीं चलाया जाता है, इसलिए यह विशेषाधिकार प्राप्त खिड़कियों को प्रभावित नहीं करेगा, जब तक कि आप उच्च निर्देशिका के साथ लॉगिन पर स्क्रिप्ट को चलाने के लिए स्टार्टअप निर्देशिका के बजाय कार्य अनुसूचक का उपयोग न करें। दूसरी समस्या यह है कि कभी-कभी, नींद को फिर से शुरू करते समय स्क्रिप्ट लटक जाती है, इसलिए आपको इसे फिर से लोड करना पड़ सकता है, जो कि कष्टप्रद है।

AutoHotKey अधिक जटिल कार्यों के लिए बेहतर अनुकूल है, जैसे मैक्रोज़ लिखना।


मैंने ऑटोहोटकी समाधान की कोशिश की और मैं इसकी सिफारिश नहीं करता हूं। यदि आपके पास अपने ऑटोरपेट की गति उच्च, विलंब कम है तो यह अच्छी तरह से काम नहीं करता है। यह भी xkeymacs के साथ अच्छी तरह से मिश्रण नहीं करता है, जो इमैक कीज़ को विंडोज में लगभग हर जगह काम करता है।
Reb.Cabin

मैं Emacs का उपयोग नहीं करता, लॉगिन पर स्वचालित रूप से एक .ahk फ़ाइल खोलें और इस समाधान को अब तक का सबसे सरल और पोर्टेबल
मानें

2

अटूट sysinternals टूलबॉक्स भी नियंत्रण के साथ कैपलॉक स्विच करने के लिए एक छोटा सा प्रोग्राम प्रदान करता है - ctrl2cap.exe।


सुपर उपयोगकर्ता में आपका स्वागत है। कृपया सॉफ़्टवेयर को अनुशंसा करने का तरीका पढ़ें, फिर कम से कम आवश्यक जानकारी ( बोल्ड में आइटम ) को शामिल करने के लिए अपने उत्तर को संपादित करें । इस जानकारी के बिना पद विलोपन के अधीन हो सकते हैं। योगदान के लिए धन्यवाद।
ट्विस्टी इंपर्सनेटर

1

यदि, किसी कारण से, आप तृतीय-पक्ष उपकरण नहीं चलाना चाहते हैं, तो यह संभव है कि आप अपने आप को सी के साथ कर सकें। सुषम पाल के शानदार जवाब के लिए , मैंने नीचे स्निपेट एक साथ रखा।

यह व्यावहारिक रूप से एक कुंजी लकड़हारा है। यह मुख्य प्रेस के लिए सुनता है, उन्हें पकड़ता है, और मैपिंग को ध्यान में रखते हुए कीबोर्ड इनपुट का निर्माण करता है। नीचे कंसोल ऐप को काम करने के लिए इसे चलाने की आवश्यकता है।

आपको इसे किसी तरह संकलित करने की आवश्यकता होगी। मैंने msys2.org का उपयोग किया pacman -S mingw-w64-x86_64-gccऔर इसके साथ संकलित किया /mingw64/bin/gcc nocaps.c -o nocaps.exe

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

HHOOK hook;

#define KEYCODE_CAPSLOCK 20
#define KEYCODE_LCTRL 162

LRESULT CALLBACK keyboardHook(int nCode, WPARAM wParam, LPARAM lParam)
{
    KBDLLHOOKSTRUCT *p = (KBDLLHOOKSTRUCT *) lParam;
    INPUT input = {.type = INPUT_KEYBOARD };

    printf("nCode=%d\t wParam=%d\t p->vkCode=%lu \t p->scanCode=%d\t\n", nCode, wParam, p->vkCode, p->scanCode);


    if (wParam == WM_KEYUP || wParam == WM_SYSKEYUP) {
        input.ki.dwFlags = KEYEVENTF_KEYUP;
    }

    if (p->vkCode == KEYCODE_CAPSLOCK && (p->flags & LLKHF_INJECTED) == 0) {
        input.ki.wVk = KEYCODE_LCTRL;
        SendInput(1, &input, sizeof (INPUT));
        return 1;
    } else if (p->vkCode == KEYCODE_LCTRL && (p->flags & LLKHF_INJECTED) == 0) {
        input.ki.wVk = KEYCODE_CAPSLOCK;
        SendInput(1, &input, sizeof (INPUT));
        return 1;
    }

    return CallNextHookEx(hook, nCode, wParam, lParam);
}

int main(int argc, char **argv)
{
    MSG messages;

    hook = SetWindowsHookEx(WH_KEYBOARD_LL, keyboardHook, NULL, 0);
    if (hook == NULL) {
        printf("Error %d\n", GetLastError());
        return 1;
    }

    printf("Mapping CAPSLOCK=>LCTRL and LCTRL=>CAPSLOCK..\n");
    while (GetMessage (&messages, NULL, 0, 0))
    {
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }
    return 0;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.