我正在苦苦挣扎,以捕获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分钟获取按键的计数