如何在process. start()之后安全地获取进程Id
本文关键字:安全 获取 取进程 Id 之后 process start | 更新日期: 2023-09-27 18:01:28
当一个程序被复制到多个位置,然后单独启动时,有时会出现错误:
ProcessStartInfo startInfo = new ProcessStartInfo(exePath);
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.ErrorDialog = false;
Process process = new Process() { StartInfo = startInfo };
bool isStarted = process.Start();
int processId = process.Id; // Failed as bellow When the isStarted is false
系统。InvalidOperationException:没有进程与此相关联对象。
由于您正在启动EXE文件,您不需要UseShellExecute
功能。由于某些不可思议的原因,UseShellExecute
默认设置为true。使用它会带来很多复杂性。
设置UseShellExecute
为false, Start
应始终返回true
。那么,ID应该总是有效的。请确保处置Process
实例。