C#语言怎么禁用键盘上的某些键?

本人想做一个像网吧里的挂机锁的程序,请问高手怎么样禁用键盘上的某些键?(Ctrl, Alt, Del, Tab, F4, Winkey, D)....
有更多的技巧,还请指教...

兄弟,C#是不能做键盘钩子的
要想禁止ctrl+alt+del这个组合键,我编程5年了,没见过完全用C#写出来的
一定要用C#做,也是调用C或者C++写的底层代码才行
因此建议不要用C#写了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-30
写个后台钩子,截获键盘事件,发现这几个按键就屏蔽。去查查跟键盘相关的API函数,还有SendMessage
我很久以前用VB实现过这个功能,没用 C#写过,不过应该大同小异的。
第2个回答  2013-10-30
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Diagnostics;

namespace click如何重新赋值
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class Form4 : Form
{
//*************************键盘钩子**********************
//定义变量
public delegate int HookProc(int nCode, Int32 wParam, IntPtr lParam);
static int hKeyboardHook = 0;
HookProc KeyboardHookProcedure;
/*************************
* 声明API函数
* ***********************/
// 安装钩子 (using System.Runtime.InteropServices;)
[DllImport("user32.dll",CharSet=CharSet.Auto)]
public static extern int SetWindowsHookEx(int idHook,HookProc lpfn, IntPtr hInstance, int threadId);
// 卸载钩子
[DllImport("user32.dll",CharSet=CharSet.Auto)]
public static extern bool UnhookWindowsHookEx(int idHook);
// 继续下一个钩子
[DllImport("user32.dll",CharSet=CharSet.Auto)]
public static extern int CallNextHookEx(int idHook, int nCode, Int32 wParam, IntPtr lParam);
// 取得当前线程编号(线程钩子需要用到)
[DllImport("kernel32.dll")]
static extern int GetCurrentThreadId();

[DllImport("kernel32.dll")]
public static extern IntPtr GetModuleHandle(string name);本回答被网友采纳
第3个回答  2013-10-30
C#上貌似没有对钩子函数进行封装,所有要在C#下用API来写的话,有点麻烦,那样还不如用MFC或C++.net写的方便。
第4个回答  2013-10-30
这个很麻烦,不知道你听说键盘钩子没,要使用全局键盘钩子,
相似回答