Warum print-Anzeige in einer Windows-Dienst zurück ein Schwarzes Bild?

protected override void OnStart(string[] args)
{
    base.OnStart(args);
    CaptureScreen();

}

protected override void OnStop()
{
    base.OnStop();

}

private void CaptureScreen()
{

    Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

    Graphics graphics = Graphics.FromImage(printscreen as Image);

    graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);

    printscreen.Save(@"L:\" + Counter++ + ".jpg", ImageFormat.Jpeg);
}
  • Ich überprüfte die Interaktion mit desktop
  • versucht, das localService-Konto & user
  • Welches Betriebssystem?
  • Anmerkung: Ein service kann nicht wissen, über ein zugeordnetes L: - Laufwerk (in der Regel Benutzer-abhängig. Verwenden Sie einen UNC-Pfad (\\server\Pfad).
  • L:\\ lokale Festplatte und das os ist win 7 64bit
  • In Windows Vista und späteren Windows-Dienste können nicht die direkte Interaktion mit dem desktop. In der Tat, ein service ist nicht im Zusammenhang mit einer bestimmten Benutzer-desktop, so gibt es im wesentlichen nichts auf dem Bildschirm zu erfassen. Siehe meine Antwort hier für weitere details.
InformationsquelleAutor Rami | 2011-01-17
Schreibe einen Kommentar