Re: ScreenShot von nichtsehbaren Desktop
Du kannst das Remote Debugging oder Delphi als System starten: http://blog.delphi-jedi.net/2008/05/...s-an-easy-way/
Desktop sollte Desktop sein, egal wie geöffnet. |
Re: ScreenShot von nichtsehbaren Desktop
Delphi-Quellcode:
Nja, jetzt muß ich nur noch den Desktop aufbekommen.
SetConsoleCtrlHandler(@HandlerRoutine, True);
OldWinStat := GetProcessWindowStation; OldDesktop := GetThreadDesktop(GetCurrentProcessId); Try WinStat := CreateWindowStation(nil, 0, STANDARD_RIGHTS_REQUIRED or WINSTA_ACCESSCLIPBOARD or WINSTA_ACCESSGLOBALATOMS or WINSTA_CREATEDESKTOP or WINSTA_ENUMDESKTOPS or WINSTA_ENUMERATE or WINSTA_EXITWINDOWS or WINSTA_READATTRIBUTES or WINSTA_READSCREEN or WINSTA_WRITEATTRIBUTES, nil); If WinStat <> 0 Then Begin If SetProcessWindowStation(WinStat) Then Begin Desktop := OpenInputDesktop(0, False, DESKTOP_CREATEMENU or DESKTOP_CREATEWINDOW or DESKTOP_ENUMERATE or DESKTOP_HOOKCONTROL or DESKTOP_WRITEOBJECTS or DESKTOP_READOBJECTS or DESKTOP_SWITCHDESKTOP or GENERIC_WRITE or GENERIC_READ); If Desktop <> 0 Then Begin If SetThreadDesktop(Desktop) Then Begin OpenInputDesktop meint was von "Unzulässige Funktion" (GetLastError=1) Hab's erstmal noch als Konsolenanwengung mit Adminrechten. [add] OK, Fehler gefunden. OpenInputDesktop will den Desktop öffnen, welcher auf dem PC grade die Usereingaben abbekommt. Allerdings ist dieser nach SetProcessWindowStation auf einer anderen WindowStation und man bekommt darauf nun keinen Zugriff mehr. Aber wie bekomm ich jetzt raus, welcher Desktop der "Standard"-Desktop der aktuellen WindowsStation ist? [add2] Gut, ich probiere es mal mit EnumDesktops :stupid: |
Re: ScreenShot von nichtsehbaren Desktop
Das Problem liegt wohl einfach nur daran, daß man nicht an das Handle/DC des gewünschten Desktop-Windows kommt.
Also irendwie sehr eigenartig. womöglich hast'e ja Recht und die versteckten Desktops haben keine Handles, aber Mit EnumDesktopWindows kommt man ja an alle Top-Level-Handles aller Desktops ran, aber um an das Handle des Dektops selber zu kommen hab ich einfach noch nichts gefunden. Es brachte auch nichts, die Top-Level-Fenster einzeln zeichnen zu wollen ... ebenfalls weiß- Aktuell versuch ich es mal über eine eigene WindowStation, http://www.delphipraxis.net/internal...t.php?t=168313 aber so wie die ganzen Beschreibungen klingen, hab ich Angst, daß es dort am selben Problem scheitern wird, denn auch da benötige ich das Handle/DC des gewünschten Desktops und nicht das des grad auf dem Monitor sichtbaren Desktops (wobei ich hier erstmal ausprobieren muß, ob er da wirklich den Desktop der anderen WindowStation "default" von "WinStat0") [edit] sooo, GetDesktopWindow und GetWindowDC liefern mir nun endlich andere Handle, als die vom "default"-Desktop, aber auch hier bleibt alles weiß :wall: (also alles in einer neuen WindowStation) |
Re: ScreenShot von nichtsehbaren Desktop
In 'ner anderen WindowStation bekomm ich endlich ein anderes DesktopHandle, aber dennoch bleibt es weiß.
Leeres Bitmap ist weiß und StretchBlt aka TCanvas.CopyRect sagt nur "Zugriff verweigert". Aber irgendwie muß es doch gehn? :? Immerhin funktioniert es ja auch bei den Terminal Servern. Im Endefekt soll es eine Mischung zwischen Terminal Server und Remote Desktop werden. - Verbindung mit aktuell eingeloggten User (dieses geht schonmal) - aber ohne einen eventuell Davorsitzenden zu stören und dennoch etwas anderes sehn zu können > speziell bräuchte ich Zugriff auf ein paar der laufenden Anwendungen - Steurung oder Zugriff auf die Eingabegeräte (Maus und Tastatur) sind nicht notwendig |
AW: ScreenShot von nichtsehbaren Desktop
Auch, wenn es jetzt etwas länger her ist:
@himitsu: Hast du es jetzt zum laufen bekommen ohne extra WindowStation? Oder kommt man da nicht drumherum? |
AW: ScreenShot von nichtsehbaren Desktop
nee :cry:
|
AW: ScreenShot von nichtsehbaren Desktop
Und ging es dann MIT extra WindowStation, oder selbst dann nicht? :cry:
EDIT: Zumindest gehen ja einzelne Fenster. Ist also nicht sooooo schlimm. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz