Проверьте, могу ли я показать диалоговое окно (на основе текущего кода, запущенного в приложении winform или службе Windows) - PullRequest
2 голосов
/ 07 апреля 2011

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

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

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

0 голосов
/ 07 апреля 2011
  1. System.Environment.UserName равно SYSTEM или Network, тогда, скорее всего, это услуга.

  2. Проверьте стек вызовов и посмотрите, относится ли самый первый вызванный метод к классу, производному от ServiceBase

  3. Вы также можете установить Process.SessionId как 0 , поскольку все системные процессы и службы работают в сеансе 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...