【发布时间】:2014-03-14 02:22:21
【问题描述】:
我正在尝试在 Visual Studio 2012 中使用 C# 构建一个全局热键应用程序,以便在 Windows 7 上运行。除了 SendKeys 从未在应用程序中显示之外,我一切正常。
这是我用来发送击键的代码:
更新以使用GetFocusedWindow 示例进行调试。
StringBuilder className = new StringBuilder(256);
IntPtr hWnd = GetForegroundWindow();
GetClassName(hWnd, className, className.Capacity);
Debug.WriteLine("Foreground window: {0}={1}", hWnd.ToInt32().ToString("X"), className);
hWnd = GetFocusedWindow();
GetClassName(hWnd, className, className.Capacity);
Debug.WriteLine("Focused window: {0}={1}", hWnd.ToInt32().ToString("X"), className);
SendKeys.Send("Hello World");
当我调试程序时,聚焦记事本,然后点击热键,我收到以下调试消息,并且按键从未插入到记事本中:
Foreground Window: 4F02B6=Notepad
Focused Window: 1B6026A=WindowsForms10.Window.8.app.0.bf7d44_r11_ad1
如何将击键发送到当前前台窗口?
【问题讨论】: