Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# openexe-FindWindowsEX_C#_Winapi_Pinvoke - Fatal编程技术网

C# openexe-FindWindowsEX

C# openexe-FindWindowsEX,c#,winapi,pinvoke,C#,Winapi,Pinvoke,我正在运行一个能够处理exe文件的应用程序。使用process.start()和FindWindowsEx()运行exe并向其发送PostMessage() 我的exe文件是一个表单应用程序。如果我的exe文件中有多个文本框,如果我只想在其中一个文本框中填充一条消息,我应该怎么做 pControl = FindWindowEx(pWnd, IntPtr.Zero, infoChild.EditFieldName, IntPtr.Zero); while (pControl !=

我正在运行一个能够处理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!"

thx for advice

嗯,您无法使用这些技术访问控件的名称。我要做的是,在您的exe表单中重写WndProc方法,让它响应WM_用户消息,并让它返回要与之通信的文本框的窗口句柄


然后,您应该使用SendMessage/WM_SETTEXT来使用该句柄设置文本框中的文本。如果应用程序在没有事先警告用户的情况下销毁剪贴板的内容,则应将其从所有已知和未知领域中禁止

“exe”是您自己的,以便您可以对其进行更改吗?为什么?我只想在特定控件的帮助下使用另一个应用程序在exe中添加值。诀窍是知道哪个文本框?或者你对他们中的任何人满意吗???我明白了。好的…我做了exe文件,表单应用程序是我创建的。如果textbox2的方法是private void textbox2_TextChanged(object sender,EventArgs e){}THX danbystrombr,那么我想访问的textbox的名称,使用不同的用户名反复问相同的问题。从张贴的答案中学不到任何东西。