如何 运行 单击按钮时可见并关闭进程
How to run visible and close process when button click
我将另一个表单 exe 文件调用到我的主表单中,但我不想显示它需要可见。然后我需要在单击按钮时关闭 exe 文件。
我调用我的另一个表单 exe 使用代码
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:\Users\server.exe";
Process.Start(startInfo);
请帮我看看它是如何运行可见的?
当我需要关闭我使用的那个 exe 时
Process.Kill();
An object reference is required for the non-static field, method, or
property 'Process.Kill()'
我收到这个错误。
帮我如何打开另一个exe可见?以及如何在点击按钮时关闭它?
回答你的第二个问题:
Kill()
是 Process
的 instance 方法,但您尝试将其称为 static方法。
您需要使用 Process.Start()
返回的 Process
实例并在该实例上调用 Kill()
:
Process myProcessInstance = Process.Start(startInfo);
//...
myProcessInstance.Kill();
对于您的第一个问题:我不完全理解您的问题?您想要 window 出现吗?它应该可见还是在可见?当您 运行 当前代码时发生了什么(您是否看到)?
您可以查看 ProcessStartInfo.CreateNoWindow
and ProcessStartInfo.WindowStyle
属性。
如果您不想看到由您启动的 *.exe 创建的表单,不幸的是您无法通过 ProcessStartInfo
简单地触发它。您将不得不使用 Windows API 枚举已启动进程的 windows 并通过 API 访问这些 windows。 Here is a starting point.
如果 server.exe
是你创建的,你可以考虑给它一些命令行参数来告诉它不要显示表格。
您需要将您的流程存储在一个变量中:
Process process = Process.Start(startInfo);
process.Kill();
我将另一个表单 exe 文件调用到我的主表单中,但我不想显示它需要可见。然后我需要在单击按钮时关闭 exe 文件。
我调用我的另一个表单 exe 使用代码
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:\Users\server.exe";
Process.Start(startInfo);
请帮我看看它是如何运行可见的?
当我需要关闭我使用的那个 exe 时
Process.Kill();
An object reference is required for the non-static field, method, or property 'Process.Kill()'
我收到这个错误。
帮我如何打开另一个exe可见?以及如何在点击按钮时关闭它?
回答你的第二个问题:
Kill()
是 Process
的 instance 方法,但您尝试将其称为 static方法。
您需要使用 Process.Start()
返回的 Process
实例并在该实例上调用 Kill()
:
Process myProcessInstance = Process.Start(startInfo);
//...
myProcessInstance.Kill();
对于您的第一个问题:我不完全理解您的问题?您想要 window 出现吗?它应该可见还是在可见?当您 运行 当前代码时发生了什么(您是否看到)?
您可以查看 ProcessStartInfo.CreateNoWindow
and ProcessStartInfo.WindowStyle
属性。
如果您不想看到由您启动的 *.exe 创建的表单,不幸的是您无法通过 ProcessStartInfo
简单地触发它。您将不得不使用 Windows API 枚举已启动进程的 windows 并通过 API 访问这些 windows。 Here is a starting point.
如果 server.exe
是你创建的,你可以考虑给它一些命令行参数来告诉它不要显示表格。
您需要将您的流程存储在一个变量中:
Process process = Process.Start(startInfo);
process.Kill();