到目前为止,我创建了一个窗口 - 活动,使用SendKeys
发送文本,但我想在后台使用SendMessage
IntPtr main = FindWindow(null, "Label Code (Scan)");
if (!main.Equals(IntPtr.Zero))
{
if (SetForegroundWindow(main))
{
SendKeys.SendWait(code);
SendKeys.SendWait("{ENTER}");
}
}
我尝试过类似的事情:
IntPtr main = FindWindow(null, "Label Code (Scan)");
SendMessage(main, 0x000C, 0, "Hello");
但它将窗口的标题重命名为“Hello”。看起来,我需要找到子窗口,但无法找到lpszClass
。
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
答案 0 :(得分:2)
窗口中的控件不是真正的Windows控件。它们由Window itselt绘制和管理。但是,该窗口可能支持Windows自动化框架以允许与控件进行交互。
使用工具Inspect检查窗口是否支持Windows Automation API。
如果是,请使用classes in System.Windows.Automation
和您在“检查”工具中看到的信息来设置文字。