C#语言怎么禁用键盘上的某些键?
本人想做一个像网吧里的挂机锁的程序,请问高手怎么样禁用键盘上的某些键?(Ctrl,Alt,Del,Tab,F4,Winkey,D)....有更多的技巧,还请指教......
本人想做一个像网吧里的挂机锁的程序,请问高手怎么样禁用键盘上的某些键?(Ctrl, Alt, Del, Tab, F4, Winkey, D)....
有更多的技巧,还请指教... 展开
有更多的技巧,还请指教... 展开
5个回答
2013-10-30
展开全部
兄弟,C#是不能做键盘钩子的
要想禁止ctrl+alt+del这个组合键,我编程5年了,没见过完全用C#写出来的
一定要用C#做,也是调用C或者C++写的底层代码才行
因此建议不要用C#写了
要想禁止ctrl+alt+del这个组合键,我编程5年了,没见过完全用C#写出来的
一定要用C#做,也是调用C或者C++写的底层代码才行
因此建议不要用C#写了
2013-10-30
展开全部
写个后台钩子,截获键盘事件,发现这几个按键就屏蔽。去查查跟键盘相关的API函数,还有SendMessage
我很久以前用VB实现过这个功能,没用 C#写过,不过应该大同小异的。
我很久以前用VB实现过这个功能,没用 C#写过,不过应该大同小异的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
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);
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);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-30
展开全部
C#上貌似没有对钩子函数进行封装,所有要在C#下用API来写的话,有点麻烦,那样还不如用MFC或C++.net写的方便。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-30
展开全部
这个很麻烦,不知道你听说键盘钩子没,要使用全局键盘钩子,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询