функция, содержащая messagebox.show, не может появиться, если вызывающая программа работает как служба Windows - PullRequest
0 голосов
/ 01 октября 2019

Приложение A работает как служба Windows. Приложение A запускает checkingforerrors() внутри if.

Приложение B представляет собой исполняемый файл, который также является значком в системном трее. Приложение B имеет функцию для выполнения MessageBox.Show("message");

Также создана пустая форма Windows вместо MessageBox.Show("message");

Приложения B

public static void checkingforerrors()
{
    MessageBox.Show("ALERT");
}

Приложения A

checkforerrorsfrommonitor.checkingforerrors();

Ожидается, что, поскольку мое приложение Monitor.exe имеет MessageBox, проблема с службами, взаимодействующими с рабочим столом, не возникнет.

Вот ошибка:

System.InvalidOperationException: Отображение модального диалогового окна или формы, когда приложение не запущено в режиме UserInteractive, не является допустимой операцией. Укажите стиль ServiceNotification или DefaultDesktopOnly для отображения уведомления от приложения-службы.

1 Ответ

0 голосов
/ 02 октября 2019

Это не сработает. Служба Windows также будет работать, если пользователь не вошел в систему. Так что, если никто не там, чтобы прочитать это. И он остановится, пока никто не нажмет «ОК» (в случае, если это сработает ». Это было написано« UserInteractiveMode ».

Обычно служба Windows записывает сообщения в Log_File или в базу данных. где его могут подобрать люди, которым это интересно.

...