किसी कृपया मुझे बताओ कैसे कर सकता हूँ ग # का उपयोग कर कार्य स्विच कुंजी निष्क्रिय करने के लिए कार्य स्विच कुंजी (Winkey, ऑल्ट-टैब, ऑल्ट-esc, ctrl-esc) को रोकें कैसेसी # में निम्न स्तर कुंजीपटल हुक का उपयोग कर
उत्तर
मैं निष्क्रिय करने के लिए विंडोज कुंजी पूरा कोड, Alt + टैब और इतने पर मिल गया है ..
और अब मैं प्रदान कर रहा हूँ निम्नलिखित कोड दूसरों के संदर्भ के रूप में:
/* Code to Disable WinKey, Alt+Tab, Ctrl+Esc Starts Here */
// Structure contain information about low-level keyboard input event
[StructLayout(LayoutKind.Sequential)]
private struct KBDLLHOOKSTRUCT
{
public Keys key;
public int scanCode;
public int flags;
public int time;
public IntPtr extra;
}
//System level functions to be used for hook and unhook keyboard input
private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int id, LowLevelKeyboardProc callback, IntPtr hMod, uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool UnhookWindowsHookEx(IntPtr hook);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr CallNextHookEx(IntPtr hook, int nCode, IntPtr wp, IntPtr lp);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr GetModuleHandle(string name);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern short GetAsyncKeyState(Keys key);
//Declaring Global objects
private IntPtr ptrHook;
private LowLevelKeyboardProc objKeyboardProcess;
private IntPtr captureKey(int nCode, IntPtr wp, IntPtr lp)
{
if (nCode >= 0)
{
KBDLLHOOKSTRUCT objKeyInfo = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lp, typeof(KBDLLHOOKSTRUCT));
// Disabling Windows keys
if (objKeyInfo.key == Keys.RWin || objKeyInfo.key == Keys.LWin || objKeyInfo.key == Keys.Tab && HasAltModifier(objKeyInfo.flags) || objKeyInfo.key == Keys.Escape && (ModifierKeys & Keys.Control) == Keys.Control)
{
return (IntPtr)1; // if 0 is returned then All the above keys will be enabled
}
}
return CallNextHookEx(ptrHook, nCode, wp, lp);
}
bool HasAltModifier(int flags)
{
return (flags & 0x20) == 0x20;
}
/* Code to Disable WinKey, Alt+Tab, Ctrl+Esc Ends Here */
फिर Form_Load() के अंदर;
private void Form_Load(object sender, EventArgs e)
{
ProcessModule objCurrentModule = Process.GetCurrentProcess().MainModule;
objKeyboardProcess = new LowLevelKeyboardProc(captureKey);
ptrHook = SetWindowsHookEx(13, objKeyboardProcess, GetModuleHandle(objCurrentModule.ModuleName), 0);
}
मुझे यह त्रुटि मिलती है त्रुटि \t 'System.Windows.Input.ModifierKeys 'एक' प्रकार 'है लेकिन इसे' चर ' – Omar
की तरह उपयोग किया जाता है, मैंने इस चेक का उपयोग करके समाप्त किया' if (objKeyInfo.key == Keys.RWin || objKeyInfo .key == Keys.LWin || objKeyInfo.key == Keys.Tab && HasAltModifier (objKeyInfo.flags) || objKeyInfo.key == Keys.Escape && (कीबोर्ड। मोडिफायर और संशोधक Keys.Control)! = 0) ' – Omar
मैं इस कोड का उपयोग करता हूं, लेकिन मुझे त्रुटि मिलती है 'सुरक्षित स्मृति को पढ़ने या लिखने का प्रयास किया जाता है। यह प्रायः एक संकेत है कि अन्य स्मृति भ्रष्ट है ' – Niloo
आप दबाए गए कुंजियों को दबाए रखने के लिए OnKeyDown ईवेंट का उपयोग कर सकते हैं और जिन्हें आप अनुमति नहीं देना चाहते हैं उन्हें दबाएं।
स्कॉट हैनसेलमैन BabySmash application alt-tab alt-esc, आदि जैसे अधिकांश प्रमुख स्ट्रोक अक्षम करता है। source and development में से अधिकांश अपने ब्लॉग पर पाए जा सकते हैं। स्रोत GitHub पर है। स्रोत में, आप देखेंगे कि वह इंटरसेप्टकिज़ क्लास है जो दबाए गए कुंजी पर निम्न स्तर के हुक प्राप्त करने के लिए कई Win32 कॉल का उपयोग करता है। उसके बाद वह App.xaml.cs फ़ाइल में हुककॉलबैक में हैंडल करता है। उम्मीद है की यह मदद करेगा।
ने एक और समान SO प्रश्न जोड़ा। आप ctrl-alt-del को पकड़ नहीं सकते हैं, और शायद alt-tab नहीं, लेकिन अधिकांश अन्य। जीत कुंजी करने में सक्षम होना चाहिए। –
babysmash उदाहरण जो आप देख रहे हैं –
Alt-Tab पकड़ने योग्य है, लेकिन इसकी अनुशंसा नहीं की जाती है। Ctrl-Alt-Del उपयोगकर्ता मोड में फंस नहीं जा सकता है। पूर्ण विराम। – ChrisV
- 1. सी # निम्न स्तर के माउस हुक और फॉर्म इवेंट हैंडलिंग
- 2. एकाधिक कीबोर्ड और निम्न-स्तरीय हुक
- 3. निम्न स्तर का लुआ दुभाषिया
- 4. निम्न स्तर हूकर
- 5. निम्न-स्तर के माउस और कीबोर्ड हुक को समझना (win32)
- 6. एचडीएफ 5: निम्न स्तर बनाम निम्न स्तर इंटरफेस। h5py
- 7. सी # में वास्तविक निम्न स्तर की ध्वनि उत्पादन?
- 8. निम्न स्तर के डेटा संचार
- 9. निम्न स्तर जावास्क्रिप्ट क्या है?
- 10. निम्न स्तर कंसोल इनपुट और पुनर्निर्देशन
- 11. विंडोज में निम्न स्तर के ऑडियो के लिए सर्वश्रेष्ठ एपीआई?
- 12. डिजाइन दस्तावेज़ (उच्च स्तर और निम्न स्तर के डिजाइन दस्तावेज़)
- 13. क्लिक करना कुंजीपटल 'अगला' कुंजी का उपयोग कर UIAutomation
- 14. सी ++ में "निम्न-स्तर" बहु-थ्रेडिंग का मूल उदाहरण क्या है?
- 15. सर्वर बनाम क्लाइंट सॉकेट (निम्न स्तर का विवरण)?
- 16. आईफोन आईओएस 4 निम्न स्तर का कैमरा नियंत्रण?
- 17. सी # कुंजीपटल इनपुट भेजना
- 18. क्या .NET डेवलपर * वास्तव में * निम्न स्तर के एक्सपोजर के लिए सी सीखने का समय खर्च कर रहे हैं?
- 19. बनाना तीन स्तर सी #
- 20. निम्न स्तर के सामान्य बीएसडी सॉकेट से कम
- 21. कुंजीपटल
- 22. गिट प्रतिबद्ध हुक का उपयोग कर टिकट नंबर संलग्न करें?
- 23. सी #: कीबोर्ड हुक
- 24. कुंजीपटल
- 25. कुंजीपटल
- 26. आरएस 232 (कॉम-पोर्ट) आरटीएस/सीटीएस/डीटीआर/डीएसआर का निम्न स्तर का नियंत्रण संभव है?
- 27. कुंजीपटल
- 28. एसवीएन पोस्ट-प्रतिबद्ध हुक का उपयोग केवल
- 29. निम्न स्तर की डब्ल्यूसीएफ त्रुटियों को कैसे संभालें?
- 30. सी # में LINQ का उपयोग कर
आप ऐसा क्यों करना चाहते हैं? – Fosco
किसी भी प्रकार का कियोस्क एप्लिकेशन ... मान्य सवाल यह सुनिश्चित नहीं करता कि डीवी क्यों है, यह शायद एक डुप्लिकेट है। –
अधिकांश पीसी गेम ऐसा करते हैं। कई पूर्ण सिस्टम पर विशेष फुलस्क्रीन बेहतर प्रदर्शन प्राप्त करता है, और जब आप अपना पसंदीदा गेम खेलने की कोशिश कर रहे हैं तो स्काइप चैट पॉप अप करना चाहता है? – yoyo