求助:请问分别用什么代码是屏蔽鼠标,热键或者屏蔽键盘呀??? 最简单的就是 override void WndProc(ref Message m)底层的就是hook了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单的热键WndProc就足够了类似Ctrl+Alt+Delete比较复杂 //有关鼠标和键盘钩子的相关定义 static int hhookMouse = 0; static int hhookKeyBoard = 0; public const int WH_MOUSE = 14; public const int WH_KEYBOARD = 2 ; public const int HC_ACTION = 0; public delegate int HookProc(int nCode, IntPtr wParam, IntPtr iParam); HookProc MouseHookProcedure, KeyBoardHookProcedure; [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int SetWindowsHookEx(int idHook,HookProc lpfn,IntPtr hinstance,int threadid); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern int CallNextHookEx(int idHook, int nCode, IntPtr wParam, int lParam); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern bool UnhookWindowsHookEx(int idHook); /// <summary> /// 钩子处理方法(键盘锁定) /// </summary> /// <param name="nCode"></param> /// <param name="wParam"></param> /// <param name="lParam"></param> /// <returns></returns> private int KeyBoardHookProc(int nCode, IntPtr wParam, IntPtr lParam) { //如果nCode<0,直接调用CallNextHookEx返回 if (nCode < 0) //return CallNextHookEx(hhookKeyBoard, nCode, wParam, lParam); return 1; //函数将消息向下传递,下一个钩子处理将截获这一消息 //if (nCode != HC_ACTION) //return CallNextHookEx(hhookKeyBoard, nCode, wParam, lParam); return 1; } /// <summary> /// 启动键盘锁定 /// </summary> /// <returns></returns> private bool EnableKeyBoardCapture() { KeyBoardHookProcedure = new HookProc(this.KeyBoardHookProc); Process currentProcess = Process.GetCurrentProcess(); //安装全局键盘钩子 hhookKeyBoard = SetWindowsHookEx(WH_KEYBOARD, KeyBoardHookProcedure, currentProcess.MainModule.BaseAddress, 0); if (hhookKeyBoard == 0) return false; return true; } /// <summary> /// 解除键盘锁定 /// </summary> /// <returns></returns> private bool DisableKeyBoardCapture() { return UnhookWindowsHookEx(hhookKeyBoard); }看看这个有没有用吧 1.将窗体的属性KeyPrieview设置为true2.在窗体KeyDown事件中加如下代码private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e){//屏掉alt+f4if (e.KeyCode == Keys.F4&&e.Alt){e.Handled = true;}} 我现在用的是:axWebBrowser 控件 我打开的是PPT 文件 .想屏蔽右键功能,不让人家复制,另存为. 谢谢高手回答一下哟 屏蔽右键http://blog.csdn.net/cnhgj/archive/2004/08/08/68813.aspx GridView问题 C#+flash动画开发医院触摸屏查询系统 帶參數存儲過程與水晶報表的問題?難,難,難....... Queue队列线程同步问题。 c#.net 请问如何在一个用户ui界面运行的时候启动一个线程来监视这个ui的一些动作,急~~~ C#中事务处理的问题 谁能帮我写一个标准的xml然后拿c#读出它们 如何用C#做一个三层C/S结构的应用程序(最好能给一个例子,万分感谢,我的分已全给出了) "*.cs[设计]”窗口为什么出现不了? WINFORM,我怎么样让DataGridView默认有10行空行,保存时怎么知道保存那几行?谢谢! 高手请进 继承问题!
static int hhookMouse = 0;
static int hhookKeyBoard = 0;
public const int WH_MOUSE = 14;
public const int WH_KEYBOARD = 2 ;
public const int HC_ACTION = 0;
public delegate int HookProc(int nCode, IntPtr wParam, IntPtr iParam);
HookProc MouseHookProcedure, KeyBoardHookProcedure;
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int SetWindowsHookEx(int idHook,HookProc lpfn,IntPtr hinstance,int threadid);
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int CallNextHookEx(int idHook, int nCode, IntPtr wParam, int lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern bool UnhookWindowsHookEx(int idHook);
/// <summary>
/// 钩子处理方法(键盘锁定)
/// </summary>
/// <param name="nCode"></param>
/// <param name="wParam"></param>
/// <param name="lParam"></param>
/// <returns></returns>
private int KeyBoardHookProc(int nCode, IntPtr wParam, IntPtr lParam)
{
//如果nCode<0,直接调用CallNextHookEx返回
if (nCode < 0)
//return CallNextHookEx(hhookKeyBoard, nCode, wParam, lParam);
return 1;
//函数将消息向下传递,下一个钩子处理将截获这一消息
//if (nCode != HC_ACTION)
//return CallNextHookEx(hhookKeyBoard, nCode, wParam, lParam);
return 1;
}
/// <summary>
/// 启动键盘锁定
/// </summary>
/// <returns></returns>
private bool EnableKeyBoardCapture()
{
KeyBoardHookProcedure = new HookProc(this.KeyBoardHookProc);
Process currentProcess = Process.GetCurrentProcess();
//安装全局键盘钩子
hhookKeyBoard = SetWindowsHookEx(WH_KEYBOARD, KeyBoardHookProcedure, currentProcess.MainModule.BaseAddress, 0);
if (hhookKeyBoard == 0)
return false;
return true;
}
/// <summary>
/// 解除键盘锁定
/// </summary>
/// <returns></returns>
private bool DisableKeyBoardCapture()
{
return UnhookWindowsHookEx(hhookKeyBoard);
}看看这个有没有用吧
2.在窗体KeyDown事件中加如下代码
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
//屏掉alt+f4
if (e.KeyCode == Keys.F4&&e.Alt)
{
e.Handled = true;
}}