是否可以从另一个c#项目(windows窗体)打开c#exe文件(控制台应用程序)并从exe文件中写入或读取不同的文本值?我正在使用user32dll来处理exe文件。
THX 我确实使用此方法在exe文件中添加文本:
Clipboard.SetText("Message!");
foreach (IntPtr pPost in pControls)
{
PostMessage(pPost, (uint)WindowMessage.WM_PASTE, 0, 0);
}
但不起作用。我没有在c#exe中添加“消息”帖子(这是一个控制台应用程序)。你使用notepad.exe,你的工作正常。
答案 0 :(得分:5)
您可以使用Process
类来执行命令行应用,并使用StandardInput
和StandardOutput
属性重定向输入/输出。
来自MSDN:
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "Write500Lines.exe";
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
上面链接的StandardOutput
页面上有更多示例。
答案 1 :(得分:2)
这里有大量可能的故障模式。
访问pinvoke.net以获取(通常)正确的pinvoke声明。