![]() |
1
7
您应该能够使用与Windows窗体应用程序相同的技术,方法是将其重新命名为 HwndHost . 您甚至可以调整Windows窗体代码,并将其直接放入 WindowsFormsHost 控制。 |
![]() |
2
8
除了 reed copsey 关于在WPF应用程序中嵌入控制台窗口的极好建议之外,另一种非常容易实现的策略是通过process类简单地发出命令,并将两个流重定向到本机WPF文本块中。这是截图…
此WPF应用程序(连接到“exe”文件的Windows资源管理器上下文菜单)执行程序,并将结果传输到相应的窗口。
当你想运行一个控制台实用程序时,它被设计成有帮助的,当你点击它时,它会在一个控制台窗口中呼啸而过,你永远看不到发生了什么。它还连接到“csproj”文件,以便从资源管理器对其运行msbuild。
重点是有时自己做比尝试托管控制台窗口更容易和更可扩展…。 这个应用程序的内部使用这个类… 公共类处理器 { 公共字符串stdout get;private set; 公共字符串stderr get;private set; 公共字符串exmessage get;set; public void start(fileinfo exe,string args,action<processpiper>oncomplete) { processStartInfo psi=新的processStartInfo(exe.fullname,args); psi.RedirectStandardError=真; psi.RedirectStandardOutput=真; psi.useShellExecute=假; psi.workingdirectory=path.getdirectoryname(exe.fullname); task.factory.startNew(()=> { 尝试 { exmessage=string.empty; 流程流程=新流程(); process.startinfo=psi; process.start(); process.waitForexit(); stdout=process.standardoutput.readToend(); stderr=process.standardError.readToEnd(); 完成(这个); } catch(异常ex) { ex message=例如message; } (}); } } < /代码>此类执行名为“exe”的文件并捕获输出,然后调用视图模型。整个编码训练大约需要一个小时… process类的文档如下: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx 对于将控制台窗口嵌入到WPF应用程序中,一个非常容易实现的替代策略是通过进程类简单地发出命令,并将两个流重定向到本机WPF文本块中。这是截图…
这个WPF应用程序(连接到“exe”文件的Windows资源管理器上下文菜单)执行程序并将结果传输到相应的窗口中。 当你想运行一个控制台实用程序时,它被设计成有帮助的,当你点击它时,它会在一个控制台窗口中呼啸而过,你永远看不到发生了什么。它还连接到“csproj”文件,以便从资源管理器对其运行msbuild。 关键是有时候自己做比尝试托管一个控制台窗口更容易和更可扩展… 这个应用程序的内部使用这个类…
此类执行名为“exe”的文件并捕获输出,然后调用视图模型。整个编码训练大约要花一个小时… 流程类的文档如下: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx |