क्या यह बताने के लिए सिस्टम को क्वेरी करने का एक तरीका है कि क्या कैप्स लॉक लॉक है या टर्मिनल लाइन में कमांड लाइन से दूर है?
क्या यह बताने के लिए सिस्टम को क्वेरी करने का एक तरीका है कि क्या कैप्स लॉक लॉक है या टर्मिनल लाइन में कमांड लाइन से दूर है?
जवाबों:
Macscripter पर Stefenk द्वारा लिखित एक महान कमांड लाइन कोड है
स्टीफन का कोड आपको cmd, विकल्प, नियंत्रण, शिफ्ट और कैप्स लॉक का पता लगाने की अनुमति देता है।
अपने पोस्ट में वह कोड और एक डाउनलोड ज़िप प्रदान करता है।
आप या तो इसे डाउनलोड कर सकते हैं या नींव परियोजना का उपयोग करके Xcode में अपना खुद का निर्माण कर सकते हैं।
मैंने अभी एल कैपिटन में दोनों तरीकों का परीक्षण किया और वे दोनों काम करते हैं।
यदि आप Xcode.app में अपना स्वयं का निर्माण करना चाहते हैं तो वह कोड है:
#import <Carbon/Carbon.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
unsigned int modifiers = GetCurrentKeyModifiers();
if (argc == 1)
printf("%d\n", modifiers);
else {
int i, result = 1;
for (i = 1; i < argc; ++i) {
if (0 == strcmp(argv[i], "shift"))
result = result && (modifiers & shiftKey);
else if (0 == strcmp(argv[i], "option"))
result = result && (modifiers & optionKey);
else if (0 == strcmp(argv[i], "cmd"))
result = result && (modifiers & cmdKey);
else if (0 == strcmp(argv[i], "control"))
result = result && (modifiers & controlKey);
else if (0 == strcmp(argv[i], "capslock"))
result = result && (modifiers & alphaLock);
}
printf("%d\n", result);
}
}
return 0;
}
---------- (अपडेट ->
यदि आप इसे Terminal.app से संकलित करना चाहते हैं
कोड को एक सादे पाठ फ़ाइल में डालें। मैंने अभी TextEdit.app और एक सादा पाठ दस्तावेज़ का उपयोग किया है।
अपनी फ़ाइल के समान निर्देशिका में सीडी। सुनिश्चित करें कि एक्सटेंशन है .m (.c भी ठीक होगा)
फिर भागो।
gcc -framework Carbon CheckModKeys.m -o CheckModKeys
CheckModKeys.m आपकी फ़ाइल है।
CheckModKeys आउटपुट होने वाले ऐप का नाम है।
<-)
कैप्स लॉक का पता लगाने के लिए आपका कमांड कुछ इस तरह दिखाई देगा:
/Users/UserName/MyFolder/CheckModKeys capslock
1 या 0 वापस किया जाएगा।
पर 1 के लिए
0 के लिए बंद
सारा श्रेय स्टेफेन को जाता है। मुझे बस याद है कि उसने इस तरह से `2009 'में पोस्ट किया था। और यह आज भी काम करता है ।।
gcc -o getmod getmod.c
लेकिन वह लौट आया getmod.c:4:5: error: expected expression @autoreleasepool { ^ 1 error generated.
यदि आपके पास XQuartz स्थापित है और या तो इसे चलाना या लॉन्च करने में कोई आपत्ति नहीं है, तो आप चला सकते हैं:xset -q
Keyboard Control:
auto repeat: on key click percent: 0 LED mask: 00000000
XKB indicators:
00: Caps Lock: off 01: Num Lock: off 02: Shift Lock: off
03: Group 2: off 04: Mouse Keys: off 05: Scroll Lock: off
xset
बैश में डिफ़ॉल्ट उपयोगकर्ता खाते का उपयोग करते हुए एल कैपिटन पर नहीं हूं । क्या यह एक विशिष्ट शेल या कुछ ऐसा है जिसे आपको कमांड काम करने के लिए स्थापित करना है?
xset
एक हिस्सा है X11
जो डिफ़ॉल्ट रूप से स्थापित नहीं है। आप इसे यहां प्राप्त कर सकते हैं: XQuartz
xset
यह XQuartz.app का कारण बनता है इसे खोलने के लिए (`xset) एक टर्मिनल में चलाने के लिए। मेरे लिए यह अवांछित व्यवहार है क्योंकि मैं बस एक सीएलआई उपयोगिता चाहता हूं जो किसी अन्य बीएसडी कमांड की तरह चलती है।