当前位置:首页>网络学院>程序开发>c#教程>文章内容

在C#中使用钩子实现Alt+F4健窗口最小化功能

[ 来源:http://www.it55.com | 作者: | 时间:2008-01-11 | 收藏 | 推荐 ] 【


  193 HookEventArgs eventArgs = new HookEventArgs();
  194 eventArgs.key = key;
  195 eventArgs.lParam = lParam;
  196 eventArgs.wParam = wParam;
  197 eventArgs.HookCode = code;
  198 eventArgs.bAltKey = GetKeyState(VirtualKeys.VK_MENU) <= -127;
  199 eventArgs.bCtrlKey = GetKeyState(VirtualKeys.VK_CONTROL) <= -127;
  200 HookInvoked(this, eventArgs);
  201 }
  202
  203 return CallNextHookEx(m_hook, code, wParam, lParam);
  204 }
  205
  206 protected int CallProcHookProcedure(int code, IntPtr wParam, IntPtr lParam)
  207 {
  208 try
  209 {
  210 CallNextProc = true;
  211 if (HookInvoked != null)
  212 {
  213 HookEventArgs eventArgs = new HookEventArgs();
  214 eventArgs.lParam = lParam;
  215 eventArgs.wParam = wParam;
  216 eventArgs.HookCode = code;
  217 HookInvoked(this, eventArgs);
  218 }
  219
  220 if (CallNextProc)
  221 {
  222 return CallNextHookEx(m_hook, code, wParam, lParam);
  223 }
  224 else
  225 {
  226 //return 1;
  227 return CallNextHookEx(IntPtr.Zero, code, wParam, lParam);
  228 }
  229 }
  230 catch (Exception ex)
  231 {
  232 MessageBox.Show(ex.Message);
  233 return 0;
  234 }
  235 }
  236 }
  237 #endregion
  238}
  
  以上的钩子只对当前应用程序起作用,如果想控制其他的所有程序,需要使用全局钩子。原则上全局钩子在C#中是不支持的,在http://www.codeproject.com/csharp/globalhook.asp 中的代码可以参照来实现全局钩子  
    

(编辑:IT资讯之家 www.it55.com

返回顶部
共4页: 上一页 [1] [2] [3] 4 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]