Не удается захватить экран

2

У меня есть служба Windows, работающая на клиентской машине. Мне нужно захватить экран клиента и отправить его на сервер через удаленный доступ. Когда я запускаю exe файл, он может захватывать экран и отправлять его на сервер. Но когда я запускаю его как службу, он регистрирует следующую ошибку:

"Ручка недействительна."

Установлен флажок "взаимодействовать с рабочим столом". Код, который я использую для скриншота:

Image bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
Graphics  gfxScreenshot = Graphics.FromImage(bmpScreenshot);
gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
return bmpScreenshot;

Что может быть причиной и как я могу это решить?

Теги:
windows-services
screenshot

1 ответ

5
Лучший ответ

Службы запускаются в сеансе 0 (с точки зрения Vista), пока остальные приложения не работают.

Вам нужно запустить приложение захвата экрана в сеансе пользователя после входа в систему, используя (например) раздел Run.

  • 1
    Теперь вы официально герой дня в нашей компании.
  • 0
    Я не уверен, как это отвечает на вопрос. Какое было разрешение?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню