监视C#中的特定击键

我需要编写一个Windows应用程序来监视击键而不管焦点。 当它检测到特定击键时(具体为Ctrl + V ),它需要执行某些操作。

如何在C#中监视Windows中的击键而不管焦点?

我不完全理解你的问题,但如果你想注册全局密钥而不管窗口焦点如何,你可以使用RegisterHotKey windows API。

一个非常简单的方法是使用GetASyncKeyState。 我只将其用于游戏,但我认为它可以在这里使用。

导入此:

[DllImport("user32.dll")] static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey); 

然后你可以做(​​在一个循环或计时器)

 if(GetAsyncKeyState(Keys.ControlKey) && GetAsyncKeyState(Keys.K)) { //DO SOME STUFF!! } 

如果你需要它只需按一下它就可以声明

 bool oldK; //at class scope 

然后在你的循环/计时器

 if(!oldK && GetAsyncKeyState(Keys.ControlKey) && GetAsyncKeyState(Keys.K)) { //DO SOME STUFF!! } oldK = GetAsyncKeyState(Keys.K); 

结帐本文在C#中检测和记录击键

你需要把代码编写成一个类。然后将这个类添加到windows服务中。实现windows service的start()方法。将缓冲代码放入某个计时器中,例如

  this.timerBuffFlush = new System.Timers.Timer(); this.timerBuffFlush.Enabled = true; this.timerBuffFlush.Elapsed += new System.Timers.ElapsedEventHandler(this.timerBuffFlush_Elapsed); this.timerBufferFlush.Interval = 60000; } 
Interesting Posts