如何在Windows服务中捕获键盘输入

时间:2018-03-10 10:19:21

标签: c# windows-services

我正在苦苦挣扎,以捕获Windows服务中的按键输入

我有KeystrokeAPI,它可以在控制台应用程序中运行,

我在服务的OnStart()中编写了以下代码

using (var api = new KeystrokeAPI())
            {
                System.Timers.Timer t = new System.Timers.Timer();
                t.Elapsed += new ElapsedEventHandler(TimerCallback);                    
                t.Interval = 30000;
                t.Enabled = true;
                t.AutoReset = true;
                api.CreateKeyboardHook((character) => {
                   // Console.Write(character);
                    count++;

                });
            }

和事件处理程序

    protected void TimerCallback(object sender, ElapsedEventArgs e)
    {
        // Display the date/time when this method got called.
        //Console.WriteLine("In TimerCallback: " + DateTime.Now);
        //Console.WriteLine("Count Of Keys: " + count);
        StreamWriter sw = new StreamWriter(@"d:\ChaiKeyAPILog.txt", true);
        sw.WriteLine();
        sw.WriteLine("In TimerCallback: " + DateTime.Now);
        sw.WriteLine("Count Of Keys: " + count);
        sw.Close();
        count = 0;
        // Force a garbage collection to occur for this demo.
        GC.Collect();
    }

因为我保留了计时器,因此它会在每个给定的时间间隔内显示日期时间,但它不会显示键盘按键的计数。

我也尝试在Main()中编写这段代码。但没用。

请帮助我..在Windows服务中每1分钟获取按键的计数

0 个答案:

没有答案