Как узнать, запущена ли моя настольная программа на консоли?

Частью моего приложения является настольная программа Windows Forms (C#), которая будет выполняться на сервере. Я бы предпочел не вдаваться в кровавые подробности того, почему это необходимо, но давайте просто примем это как прочитанное!

Когда он запускается, я хотел бы проверить, запускается ли он на консоли (то есть либо физически на консоли, либо через RDP с переключателем /console), а не в любом другом сеансе RDP.


person Andy    schedule 27.10.2014    source источник


Ответы (2)


Этот класс кажется интересным: Process. Вот как вы можете получить процесс с удаленного компьютера:

Process[] procs = System.Diagnostics.Process.GetProcessesByName("TestApp", "MyServer01");

Но это работает только в локальной сети. Если вам нужно выйти в Интернет, я бы написал небольшой автономный веб-сервер с одним методом, который возвращает TRUE, если приложение запущено.

person BendEg    schedule 27.10.2014

Вы можете использовать Mutex для решения ваша проблема. При запуске приложения вы можете установить Mutex с префиксом "Global\". Таким образом, оно будет уникальным во всей системе, что позволит вам заметить, что ваше приложение уже запущено в системе.

person Markus Safar    schedule 27.10.2014