我已经编写了 ac# 程序,它以编程方式重现键盘敲击。我的想法是将这些键盘敲击传递给另一个应用程序,该应用程序可能有一个文本框设置为焦点。
所以在我的程序中,我希望用户选择我必须将键盘敲击重定向到的窗口。为此,我想知道一种我可以等待的方法,让用户选择必须发送键盘敲击的窗口,然后用户在我的应用程序上单击确定以确认,然后我的应用程序知道我必须在哪个窗口通过获取它的 hwnd 来控制。
我怎样才能做到这一点?
我已经编写了 ac# 程序,它以编程方式重现键盘敲击。我的想法是将这些键盘敲击传递给另一个应用程序,该应用程序可能有一个文本框设置为焦点。
所以在我的程序中,我希望用户选择我必须将键盘敲击重定向到的窗口。为此,我想知道一种我可以等待的方法,让用户选择必须发送键盘敲击的窗口,然后用户在我的应用程序上单击确定以确认,然后我的应用程序知道我必须在哪个窗口通过获取它的 hwnd 来控制。
我怎样才能做到这一点?
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Text;
public class MainClass
// Declare external functions.
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd,
StringBuilder text,
int count);
public static void Main() {
int chars = 256;
StringBuilder buff = new StringBuilder(chars);
// Obtain the handle of the active window.
IntPtr handle = GetForegroundWindow();
// Update the controls.
if (GetWindowText(handle, buff, chars) > 0)
{
Console.WriteLine(buff.ToString());
Console.WriteLine(handle.ToString());
}
}
}