我正在运行一个能够处理exe文件的应用程序。使用process.start()和FindWindowsEx()我运行exe并向它发送一个PostMessage()。
我的exe文件是表单应用程序。如果我在我的exe文件中有多个文本框,如果我想填充这些文本框中的一个带有消息我该怎么办?
pControl = FindWindowEx(pWnd, IntPtr.Zero, infoChild.EditFieldName, IntPtr.Zero);
while (pControl != IntPtr.Zero)
{
pControls.Add(pControl);
pControl = FindWindowEx(pWnd, pControl, infoChild.EditFieldName, IntPtr.Zero);
}
Clipboard.SetText("Message!");
foreach (IntPtr pPost in pControls)
{
{ PostMessage(pPost, (uint)WindowMessage.WM_PASTE, 0, 0); }
}
//the codei've posted automatically populates all the textboxes from my form with "Message!"
征求意见
答案 0 :(得分:0)
嗯,您无法使用这些技术访问控件的名称。我要做的是,在你的exe表单中覆盖WndProc方法,让它响应WM_USER消息并让它返回你想要与之通信的文本框的窗口句柄。
然后您应该使用SendMessage / WM_SETTEXT使用该句柄设置文本框中的文本。应该在没有事先警告用户的情况下销毁剪贴板内容的应用程序应该从所有已知和未知的宇宙中消除!