进程之间的区别.启动并手动运行exe

本文关键字:运行 exe 启动 之间 区别 进程 | 更新日期: 2023-09-27 18:12:30

总体情况:我写了一个Autodesk inventor插件。在Inventor的关闭事件中,它启动了另一个程序,我称之为purgeworkspace.exe。pugeworkspace .exe等待,直到Inventor关闭,然后删除Inventor正在使用的文件。

下面是调用purgeworkspace.exe的相关插件代码。

//Run as admin
if (System.Environment.OSVersion.Version.Major >= 6)
{
    Process p = Process.Start(Properties.Settings.Default.exePath);
    p.StartInfo.Verb = "runas";
}

如果purgeworkspace.exe从插件启动,我得到一个IOException,说文件正在使用中。但是,如果我通过双击exe手动运行purgeworkspace.exe,它每次都能完美地工作。我认为这是由于许可,但我不知道是什么。正如你所看到的,我已经尝试以管理员身份运行我的exe,但这并不能解决问题。

purgeworkspace.exe在手动启动时完全按照我的意图工作。我怎么用编程的方式调用它,让它以同样的方式运行?

编辑:下面的一些代码演示了purgeworkspace如何等待inventor。请记住,这段代码在我手动启动和从Inventor插件运行时都会运行。

static void Main()
{
   while (IsProcessOpen("Inventor"))
   {
       System.Threading.Thread.Sleep(50);
   }
}
private static bool IsProcessOpen(string name)
{
   return Process.GetProcesses().Any(clsProcess => clsProcess.ProcessName.Contains(name));
}

进程之间的区别.启动并手动运行exe

不管采取了什么预防措施,还是有什么东西锁住了你的文件。也许具有打开文件句柄的进程不像"Inventor"那样命名?

你可以用这个问题来解决。