5 Stimmen

Screenshot des Prozesses unter Windows Service

Wir müssen einen Prozess von einem Windows-Dienst ausführen und einen Screenshot davon erstellen.

Wir haben die Win32-Aufrufe BitBlt und PrintWindow ausprobiert, aber beide ergeben leere (schwarze) Bitmaps.

Wenn wir unseren Code von einem normalen Benutzerprozess aus ausführen, funktioniert er einwandfrei.

Ist so etwas überhaupt möglich? Oder könnte es eine andere Methode geben, die man ausprobieren könnte?

Dinge, die wir ausprobiert haben:

  1. Windows-Dienst läuft als Lokales System, führt Prozess als Lokales System aus -> Bildschirmfoto schlägt fehl
  2. Windows-Dienst wird als Administrator ausgeführt, Prozess wird als Administrator ausgeführt -> Bildschirmfoto schlägt fehl.
  3. Windows-Anwendung, die als Benutzer XYZ läuft, führt einen Prozess als XYZ aus -> Bildschirmfoto funktioniert sowohl mit BitBlt als auch mit PrintWindow.
  4. Ich habe versucht, die Option "Dienst zur Interaktion mit dem Desktop zulassen" unter Lokales System zu aktivieren.

Wir haben auch festgestellt, dass PrintWindow in unserem Fall besser funktioniert, wenn sich das Fenster hinter einem anderen Fenster befindet.

Bei anderen Anforderungen müssen sowohl der übergeordnete als auch der untergeordnete Prozess demselben Benutzer unterstellt sein. Wir können nicht wirklich die Personifizierung von einem Prozess zum anderen verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X