![]() |
[Delphi/Win7] Screenshot aus Dienst heraus
HI @all,
ich bin gerade dabei eines meiner Programme Win7-fit zu machen. Eines der Features war es, einen Screenshot zu erstellen. Unter WinXP war das ganz einfach: Einfach im Dienst den Screenshot mit den bekannten Methoden erstellen und gut. Jetzt gibt es unter Win7 ein paar klitzekleine Probleme: Statt einem Screenshot ist das komplette Bild jetzt entweder ganz schwarz oder ganz weiß (anderer Quellcode). So: Meine Frage ist jetzt: Wie mache ich, dass ich in meinem Dienst wieder einen Screenshot bekomme? - UltraVNC hat auch kein Client-Programm, welches mit Benutzerrechten läuft und einen Treiber habe ich nicht eingespielt. - Somit müsste das mein Programm ja auch können. Nur wie? Bernhard |
AW: [Delphi/Win7] Screenshot aus Dienst heraus
Das Problem wird sein, dass der Service auf Deskop0 läuft. Müsstest du mit ImpersonateLoggedOnUser() und co. rumspielen vermute ich.
Zu VNC: Dieses Programm installiert ohne Treiber einen Usermode Hook (dll) in alle laufenden Prozesse, wenn ich mich recht erinnere. Dort wird auch nicht einfach ein Screenshot gemacht, sondern GDI Zugriffe gezielt abgefangen. |
AW: [Delphi/Win7] Screenshot aus Dienst heraus
Zitat:
Bernhard |
AW: [Delphi/Win7] Screenshot aus Dienst heraus
|
AW: [Delphi/Win7] Screenshot aus Dienst heraus
Muss ich das mit dem Screenshot also in ein "externes" Programm auslagern?
Oder gibt es noch eine Möglichkeit, wo der Code im Dienst ausgeführt werden kann? (Falls nicht, kann ich dem Client-Prozess Admin-Rechte mitgeben oder sollte ich schon mal anfangen, mir Gedanken zu machen, wie ich das Bild dann in meinen Dienst rein bekomme?) Bernhard |
AW: [Delphi/Win7] Screenshot aus Dienst heraus
Zitat:
|
AW: [Delphi/Win7] Screenshot aus Dienst heraus
Ja, das war ein interaktiver Dienst, weil ich damals (ist schon lange lange her) irgendwelche Probleme mit nicht-interaktiven Diensten hatte. Mittlerweile sollte ich diese nicht mehr haben, den Screenshot hätte ich aber gerne trotzdem.
Bernhard |
AW: [Delphi/Win7] Screenshot aus Dienst heraus
Mit der oben beschriebenen Methode erhält man aus einem Dienst heraus
Zugriff auf den Benutzer Desktop. Somit kann dann natürlich auch ein Screenshot gemacht werden. Das funktioniert bisher inkl. W7 und Srv2008. Also Du benötigst kein separates Programm. |
AW: [Delphi/Win7] Screenshot aus Dienst heraus
Man kann dasselbe Programm auf diese Art und Weise mehrfach starten, aber trotzdem ist ein zweiter Prozess zwingend notwendig. Es gibt keinen anderen Weg ohne Treiber.
![]() |
AW: [Delphi/Win7] Screenshot aus Dienst heraus
Stimmt natürlich.
Ich hatte es so verstanden dass er kein 2.Programm (=EXE) möchte. Wenn er das ursprüngliche im Benutzerkontext Z.B. mit einem Parameter aufruft ist das wohl das Gleiche Programm aber ein anderer Prozess. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz