在调用 EXE 的同一进程下执行另一个 EXE

发布于 2024-09-29 13:26:05 字数 157 浏览 3 评论 0原文

我有一个在 Windows 上运行的 EXE(内置 .Net)。当它运行时,它会从服务器获取另一个 EXE 并在同一进程下执行。 使用 Process.Start 我可以在下载后执行服务器 EXE,但这会启动一个新进程,并需要执行下载驻留在服务器上的 EXE 的额外步骤。但我想要一个更好的解决方案。

I have one EXE (built in .Net) running on windows. When it runs, it'd get another EXE from server and execute under that same process.
Using Process.Start I can execute the server EXE after dowloading but that'd start a new process with an extra step of downloading the EXE residing on the server. But I wanted a better solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦开始←不甜 2024-10-06 13:26:05

如果下载的可执行文件是 .NET 应用程序,请参阅 AppDomain.ExecuteAssembly

  1. 不要使用第二个应用程序域。只需使用 AppDomain.Current.ExecuteAssembly 即可。
  2. 在启动第二个应用程序之前不要调用任何 WinForm 函数。例如,不要创建任何窗口。

如果需要创建窗口,请在执行的应用程序运行后通过将事件处理程序附加到 Application.Idle 事件来创建窗口。当应用程序加载并启动 WinForms 消息循环时,将引发此事件。在这里您可以创建窗口或通过 Form.OpenForms 访问应用程序的窗口。

If the downloaded executable is a .NET application, see AppDomain.ExecuteAssembly.

  1. Do not use a second appdomain. Just use AppDomain.Current.ExecuteAssembly.
  2. Do not call any WinForm functions before launching the second application. For example, don't create any windows.

If you need to create windows, create them after the executed application is running by attaching an event handler to the Application.Idle event. When the app is loaded and starts the WinForms message loop, this event will be raised. Here you can create windows or access the application's windows via Form.OpenForms.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文