Установите флажок «Разрешить службе взаимодействовать с рабочим столом» (в свойствах службы) службы Windows - PullRequest
0 голосов
/ 22 декабря 2011

Я использую Capture Screen в службах Windows, все коды работали правильно в форме win, но в службе win, которые возвращают черную картинку, поэтому я ищу и нахожу this и пытаюсь найти «Разрешить службе взаимодействовать с рабочим столом». msgstr "проверено (в свойствах сервиса), но нет свойства с таким именем. Есть ли идеи по этому поводу? как / где я могу найти это? Я использую Windows Server 2008 R2 SP1 и VS2010 и C # 4, и если в этой версии нет свойств, как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Этот параметр является устаревшим, и он не решит вашу проблему. Начиная с Vista, ваша служба не имеет доступа к интерактивному рабочему столу, и вам нужно будет сделать снимок экрана из стандартного приложения, работающего на интерактивном рабочем столе.

Вы можете использовать механизм IPC для связи между вашей службой и настольным приложением. Вы можете запустить это настольное приложение из службы, но это довольно сложно сделать, как объяснено здесь .

Проверка «Разрешить службе взаимодействовать с рабочим столом» просто означает, что вы можете вызывать интерактивные функции API без ошибок. Вы не получите доступ к нерегулярному рабочему столу. Эта проблема связана с изменениями, внесенными в Vista, которые означают, что службы работают в изолированном сеансе, сеанс 0.

0 голосов
/ 22 декабря 2011

Чтобы установить это свойство, вы должны открыть окно управления службами Windows, щелкнуть правой кнопкой мыши по вашему сервису и открыть свойства.После этого выберите вкладку «Вход в систему».когда ваша служба работает в локальной системе, вы можете выбрать «Разрешить службе взаимодействовать с рабочим столом».

enter image description here

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