AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ScreenShot von nichtsehbaren Desktop
Thema durchsuchen
Ansicht
Themen-Optionen

ScreenShot von nichtsehbaren Desktop

Offene Frage von "Neotracer"
Ein Thema von SleepyMaster · begonnen am 21. Okt 2004 · letzter Beitrag vom 1. Jan 2012
Antwort Antwort
Seite 5 von 5   « Erste     345   
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#41

Re: ScreenShot von nichtsehbaren Desktop

  Alt 10. Nov 2009, 10:48
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.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#42

Re: ScreenShot von nichtsehbaren Desktop

  Alt 10. Nov 2009, 11:04
Delphi-Quellcode:
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
Nja, jetzt muß ich nur noch den Desktop aufbekommen.
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 MSDN-Library durchsuchenEnumDesktops
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#43

Re: ScreenShot von nichtsehbaren Desktop

  Alt 10. Nov 2009, 14:47
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ß
(also alles in einer neuen WindowStation)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#44

Re: ScreenShot von nichtsehbaren Desktop

  Alt 11. Nov 2009, 20:55
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
$2B or not $2B
  Mit Zitat antworten Zitat
Neotracer

Registriert seit: 14. Jul 2010
17 Beiträge
 
Delphi 7 Personal
 
#45

AW: ScreenShot von nichtsehbaren Desktop

  Alt 1. Jan 2012, 21:53
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#46

AW: ScreenShot von nichtsehbaren Desktop

  Alt 1. Jan 2012, 22:21
nee
$2B or not $2B
  Mit Zitat antworten Zitat
Neotracer

Registriert seit: 14. Jul 2010
17 Beiträge
 
Delphi 7 Personal
 
#47

AW: ScreenShot von nichtsehbaren Desktop

  Alt 1. Jan 2012, 22:30
Und ging es dann MIT extra WindowStation, oder selbst dann nicht?

EDIT: Zumindest gehen ja einzelne Fenster. Ist also nicht sooooo schlimm.

Geändert von Neotracer ( 1. Jan 2012 um 23:55 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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