在c#中确定键盘的响应应用程序

时间:2013-05-11 19:21:47

标签: c# keyboard

我们假设用户正在写一些东西,比如说他写了“测试”。在这里,我们可以使用系统Hook或类似的东西来确定写的是什么。但是如果我想确定写的是什么以及这个单词写在什么应用程序上。

  

示例:

     

我在记事本中写了hello world,应用程序必须响应   你好世界写在记事本上。

可以在c#中完成?!

1 个答案:

答案 0 :(得分:1)

捕获键事件时,可以使用GetForegroundWindow()获取活动窗口(用户当前正在处理的窗口)的句柄,然后调用GetWindowText()以获取该窗口的标题

您可以下载this project file from codeproject。在HookManager.Windows.cs文件中添加以下内容:

[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")] 
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount); 

然后在密钥捕获事件中,您可以检索用户输入的窗口:

var sb = new StringBuilder(100);
var hCurrentWindow = HookManager.GetForegroundWindow();
HookManager.GetWindowText(hCurrentWindow, sb, 100);

sb将保留该窗口的标题。