1
A
回答
0
塔馬斯Piros寫道:在這個問題上 http://tamas.io/c-disable-ctrl-alt-del-alt-tab-alt-f4-start-menu-and-so-on/ 一個不錯的文章在WPF應太
0
這是不可能禁用快捷鍵CTRL + ALT + DELETE具體而言, 這是因爲CTRL + ALT +刪除組合是一個深度烘焙的系統調用。但是可以將它們分開過濾,因此您可以使用這些鍵來防止其他快捷方式。 要做到這一點,你需要掛接到操作系統事件:
這個鉤到系統的事件。
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);
如果您將ID設置爲13,它會掛鉤到鍵盤輸入。
回調
你需要幾件事情:
[StructLayout(LayoutKind.Sequential)]
private struct KBDLLHOOKSTRUCT
{
public readonly Keys key;
private readonly int scanCode;
private readonly int flags;
private readonly int time;
private readonly IntPtr extra;
}
這個結構需要讀取C#中的實際鍵。
這可以用來通過給代表一個功能,如:使用這個時候你可以得到從objKeyInfo.key
關鍵有關Ctrl
更多的背景信息
private static IntPtr CaptureKey(int nCode, IntPtr wp, IntPtr lp)
{
if (nCode < 0) return (IntPtr) 1; //CallNextHookEx(_ptrHook, nCode, wp, lp);
KBDLLHOOKSTRUCT objKeyInfo = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lp, typeof(KBDLLHOOKSTRUCT));
if(objKeyInfo.key == /*some key*/){
// do something
}
}
- Alt
- Del
組合: Is there any method to disable logoff,lock and taskmanager in ctrl+alt+del in C#
相關問題
- 1. 使用ctrl + c停止python
- 2. URL停止使用德爾福服務
- 3. 德爾福 - 使用TApplicationEvents OnShortCut事件來檢測Alt + C按鍵
- 4. 禁用CTRL-ALT-刪除,使用Alt-Tab
- 5. 停止貝爾CTRL-A(的WinForms)
- 6. 禁用Ctrl和Alt鍵
- 7. 從C#發送Ctrl-Alt-Break#
- 8. ctrl-c ctrl-v在visual studio 2010和2012中停止工作
- 9. 多線程德爾福停止
- 10. Vim的:Eclipse的如Ctrl-Backspace鍵和Ctrl-德爾
- 11. 如何在按CTRL + ALT + DEL時停止此消息?
- 12. 用Ctrl,Alt,Shift +鍵
- 13. CTRL + ALT + DEL不WIN32API和Python
- 14. 如何使用wpf費爾德對齊
- 15. 使用gulp-nodemon&gulp.watch時,無法使用Ctrl + C停止Gulp
- 16. 停止列表更新使用德爾蟒蛇
- 17. 鉤CTRL + ALT + TAB
- 18. GitHub for Windows;禁用CTRL + SHIFT + ALT + C
- 19. RDP ActiveX Ctrl + Alt + Del
- 20. 在登錄時防止按Ctrl + Alt + Del
- 21. ALT + CMD + R停止工作
- 22. Vim Ctrl- [停止工作
- 23. Ctrl-c在cygwin中停止工作
- 24. Ctrl-C停止shell腳本執行
- 25. C++停止詢問輸入在CTRL-D
- 26. 如何使用SendKeys函數使用Ctrl + Alt + C
- 27. WPF使用RepeatBehavior停止ColorAnimation
- 28. 的AltGr爲Alt + Ctrl
- 29. 無法使用Ctrl + C(Mac)停止本地節點服務器
- 30. 無法使用CTRL-C停止rails服務器
一個基本的總結:「你的程序本身不能禁用它,但你可以從程序中設置一些註冊表值到ch更改組策略規則,禁止從Ctrl + Alt + Del啓動任務管理器「。 –