Обнаружение и повторная активация моего приложения, если оно запущено - компактная структура - PullRequest
1 голос
/ 26 февраля 2009

Обычно мобильному разработчику не нужно этого делать, потому что функция интеллектуального минимизации обрабатывает это.

Но мне нужно сделать это самому, потому что мое мобильное приложение запускается приложением начальной загрузки.

Значок меню «Пуск» запускает bottstrapper, который загружает целевую версию из веб-службы, запускает ее и затем закрывает. Если приложение свернуто по какой-либо причине, пользователь обычно снова активирует его, используя значок меню «Пуск». Однако это запускает загрузчик и приводит ко второй копии клиента.

Этот вопрос возникает везде в сети для настольных приложений (и на самом деле на этом сайте). Обычно цитируемым решением является использование комбинации Process.GetProcessesByName в сочетании с вызовами API для повторной активации процесса после его обнаружения. Другое решение заключается в создании класса контроллера, который наследуется от некоторой библиотеки VisualBasic, имя которой я забыл. Ни одно из решений, с которыми я сталкивался сегодня, не поддерживается структурой comapct.

Таким образом, фактический вопрос представляет собой комбинацию:

Существует ли компактная структура, альтернативная Process.GetProcessesByName?

Если нет, какой вызов API я должен сделать вместо этого?

1 Ответ

3 голосов
/ 26 февраля 2009

Я не уверен, что вы уже нашли это или нет, но в MSDN есть статья о создании приложения диспетчера процессов , в котором есть информация, которая, я думаю, вам нужна.

Статья рекомендует использовать toolhelp.dll и содержит довольно подробное руководство для получения списка запущенных процессов. Это для Visual Studio 2003, так что вы, вероятно, должны быть хороши с любой версией VS.NET, которую вы используете.

...