uday vichare Ответов: 0

Приложение Windows запускается в фоновом режиме после нескольких транзакций


У меня есть одно простое системное приложение в трее, которое работает постоянно и пытается запустить другое приложение Windows с пользовательским интерфейсом. Он позволяет пользователю взаимодействовать с ним, а затем закрывает приложение. через некоторое время он пытается сделать то же самое. Он работает правильно для нескольких транзакций, но затем не запускает приложение. Когда я проверил диспетчер задач, я обнаружил, что после нескольких успешных открытий и закрытий приложение на панели задач запускает приложение с пользовательским интерфейсом в качестве фонового процесса. Следовательно, пользователь не может видеть запуск приложения. Я пробовал добавить исключение к антивирусу как для бывших, так и пробовал разные методы закрытия и открытия бывших. Я также проверил журналы Windows, чтобы узнать, есть ли исключения. Не было никаких исключений и в моем приложении в области уведомлений. Я не могу указать точную проблему этого поведения, поскольку оно случайным образом запускает приложение в качестве фонового процесса.

любая помощь в решении этой проблемы будет очень признательна.

Чтобы запустить приложение: Я использую com-компонент, предоставленный компанией-разработчиком программного обеспечения, для взаимодействия с приложением. при создании объекта этого класса приложение запускается, и этот объект в дальнейшем используется для выполнения нескольких операций над приложением. Я также попытался запустить приложение с помощью process.start (), но у него была та же проблема.

Чтобы закрыть приложение:

if (isRunning())
            {
                Process[] p = Process.GetProcessesByName("mdw");
                if (p.Length > 0)
                    p[0].CloseMainWindow();
                PEHRsLibrary.writeTextFile(DateTime.Now + " : Closing Main Window of Application");
                System.Threading.Thread.Sleep(2000);
            }

Я тоже пробовал процесс.убить, чтобы закрыть приложение, которое используется, чтобы дать доступ запрещен ошибка после запуска-закрытия.

Я избавляюсь от объекта onQuitevent приложения MDW. OnQuit - = OnQuitDelegate;
//MDW.OnValidatePatient -= OnValidatePatientDelegate;

// loop through release until reference count is zero
while (Marshal.ReleaseComObject(MDW) > 0 )
{
    PEHRsLibrary.writeTextFile(string.Format("{0} : Inside ReleaseMDW, releasing all dependent resources of MDW application ", DateTime.Now));
}

MDW = null;


Что я уже пробовал:

Пробовал использовать разные методы, чтобы закрыть и запустить приложение.

0 Ответов