我的代码的哪一部分是阻止热键组合?

时间:2015-04-05 00:31:57

标签: c# winforms background launcher

我开始使用C#中的一个迷你项目,它只是一个看不见的(或者至少是非常小的)WinForm,在我使用某些热键组合时打开了我选择的应用程序(例如 Alt + Num3 打开模拟人生4)。当我意识到它只会在"隐形形式"在任务栏中打开并选中,我不想要它。我最近在愚人节做了一次老鼠痉挛恶作剧,并使用以下三行来隐藏表格:

this.Hide(); //hides the form
this.Text = null; //hides the application from the task manager
this.ShowInTaskbar = false; //hides the application from the taskbar

我回到热键启动器并将这三个(不包括任务管理器一个)放入" Form1_Load"主代码中的事件。当我开始调试时,我注意到它们确实隐藏了表单,但热键组合不会响应。我要问的是1)两条线[1和3]中的哪一条导致了这种冲突; 2)如果可以的话,我该如何解决这个问题?

感谢您的时间。

注意:是的,我知道您可以使用Windows服务模板制作后台应用程序,但我从某个地方听说它与我使用的Visual C#2010 Express不兼容。我本来会用它。

1 个答案:

答案 0 :(得分:1)

它不是代码,任何键都不会注册,除非你在表单处于焦点(表单本身)时使用它,如果你需要一些东西来响应全局键盘和鼠标事件那么你需要使用windows钩:

Processing Global Mouse and Keyboard Hooks in C#