使用Windows服务读取按键

时间:2018-10-16 16:22:38

标签: c# windows-services keylogger global-hotkey

我有一些应用程序,当用户按下键盘上的特定键时要启动这些应用程序,为此,我想使用WndProc方法。

我在WinForms应用程序中成功做到了这一点。我想开发一个Windows服务来实现这一目标。 尝试在Windows服务中使用代码时出现以下错误。

  1. RegHotKeys.CreateParams:找不到适合的方法来覆盖
  2. RegHotKeys.WndProc(ref消息):找不到合适的方法来覆盖
  3. ServiceBase不包含WndProc的定义
  4. ServiceBase不包含CreateParams的定义

以下是代码段:

    protected override void WndProc(ref Message keyPressed)
    {
        Keys keyData = ((Keys)((int)((long)keyPressed.WParam))) | Control.ModifierKeys;

        if (keyPressed.LParam.ToInt32() == hotKey1)
        {
           //ACTION 1
        }
        else if (keyPressed.LParam.ToInt32() == hotKey2)
        {
           //ACTION 2

        }
        else if (keyPressed.LParam.ToInt32() == hotKey3)
        {
           //ACTION 3

        }
        else if (keyPressed.LParam.ToInt32() == hotKey4)
        { 
           //ACTION 4
        }

        base.WndProc(ref keyPressed);
    }

    protected override CreateParams CreateParams
    {
        get
        {
            var cp = base.CreateParams;
            cp.ExStyle |= 0x80;  // Turn on WS_EX_TOOLWINDOW
            return cp;
        }
    }

所以有人可以建议对此采取什么可能的解决方案吗?

0 个答案:

没有答案