Всем привет. Не уверен, о той ли проблеме идет речь, так что извиняюсь, если выйдет оффтопик.
В общем бывает такая штука, когда используешь код, что приведу ниже: то работает нормально, а то бывает Marshal.GetActiveObject("Inventor.Application") перестает находить запущенное приложение, вылетает исключение внутри try - catch и создается новый экземпляр приложения.
Лечится тем, что надо запускать инвентор от имени администратора, "ПКМ на ярлык => Свойства => Вкладка 'Ярлык' => Дополнительно => Запуск от имени администратора".
По вашему описанию, что на всех машинах кроме вашей работает, вполне похоже.
using Inventor;
using System;
namespace RIChernov.Launcher
{
public class Launcher
{
public Application GetActiveApplicationOrLaunch()
{
Application app = GetActiveApplicationOrNull();
if (app == null)
{
try
{
app = Activator.CreateInstance(Type.GetTypeFromProgID
(_progID)) as Inventor.Application;
app.Visible = true;
}
catch
{
throw new Exception("Error: couldn't create Inventor instance");
}
}
return app;
}
public Application GetActiveApplicationOrNull()
{
Application app = null;
try
{
/*
чтобы тут работало нормально,
надо запускать инвентор от имени администратора
*/
app = System.Runtime.InteropServices.Marshal
.GetActiveObject(_progID) as Inventor.Application;
}
catch { }
return app;
}
private string _progID = "Inventor.Application";
}
}