Как сохранить постоянную ссылку между двумя приложениями на платформе Windows, даже если одно из них дает сбой и снова открывается? - PullRequest
1 голос
/ 20 мая 2009

Какие есть варианты для сохранения постоянной ссылки на два приложения, даже если одно выходит из строя, так что при повторном открытии первого оно может получить ссылку на второе и вызвать методы для него.

Ситуация следующая:

  • App1 (плагин веб-браузера) создает экземпляр App2 через ссылку на объект на странице HTML и получает ссылку на него, чтобы он мог выполнять вызовы API для App2.

  • Приложение 1 падает, но приложение 2 остается открытым.

  • Когда приложение App1 открывается снова, ему нужно получить ссылку на приложение App2 (все еще работает), чтобы оно могло продолжать выполнять вызовы API.

Все это выполняется на компьютере под учетной записью администратора. Каков наилучший способ для App1 получить ссылку на все еще работающее App2, когда оно снова открывается после сбоя?

Ответы [ 2 ]

1 голос
/ 20 мая 2009

Есть много различных опций для IPC , которые будут работать.

Если вы пытаетесь совершать вызовы API из App1 в App2, вы уже используете какую-то форму IPC. Я бы просто использовал что-то вроде именованных каналов, которые разрешают использование из любого процесса. Если App2 является канальным сервером, App1 может подключиться к нему, а в случае сбоя новое App1 может просто снова подключиться к нему как клиент.

0 голосов
/ 20 мая 2009

Вы можете попробовать использовать EnumProcesses , чтобы найти работающее приложение.

Пример кода: http://msdn.microsoft.com/en-us/library/ms682623(VS.85).aspx.

...