Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Desktop Handle für Admin-Systemdienst ermitteln (Windows 7) (https://www.delphipraxis.net/143307-desktop-handle-fuer-admin-systemdienst-ermitteln-windows-7-a.html)

Mavarik 13. Nov 2009 09:13

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
Nein...
Der Service-Dienst holt sich ja das Fenster des Users...

@himitsu
Ich habe jetzt den Aufruf von
Delphi-Quellcode:
hWinstation := OpenWindowStation('winsta0', false, GENERIC_ALL);
Keine Fehlermeldung auf

Delphi-Quellcode:
hWinstation := OpenWindowStation('winsta0', false, DESKTOP_ALL or GENERIC_ALL);
erweitert...

Und erhalte dadurch einen Fehler...Access is denied.

Das ist ein ADMIN System Dienst... !

Mavarik

himitsu 13. Nov 2009 09:22

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
Das "Zugriff verweigert" bekomm ich beim Versuch den Desktop zu zeichen auch.
Dieses sogar mit 'ner eigenen WindowStation, welche mein Programm selbst erstellt hat, wo ich doch wohl die nötigen Rechte haben sollte und zusätzlich auch noch ebenfalls als ADMIN.
(bei der WinStat0 ging es auch nicht)

Wobei ich es nichtmal unter XP hinbekomm :cry:

Mavarik 13. Nov 2009 09:29

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
OK

DESKTOP_READOBJECTS or DESKTOP_ENUMERATE sind ok

bei

or DESKTOP_WRITEOBJECTS;
Geht es nicht mehr...

DESKTOP_READOBJECTS or DESKTOP_ENUMERATE bringt nix da ich immer noch einen leeren Bildschirm erhalte.

Das war es leider nicht.

Mavarik :wall:

himitsu 13. Nov 2009 10:00

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
Ich bin auch immer mal wieder am rumprobieren, falls mir mal wieder was Neues einfällt, was ich noch nicht probiert hab, aber aktuell gibt's einfach noch keine Lösung. :?

Mavarik 13. Nov 2009 10:04

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
hmm RTFM...

Siehe MSDN

Aber nicht zu früh freuen es klappt noch nicht...

Habe das mal umgesetzt...

Delphi-Quellcode:
function MyOpenWindowStation(lpszWinSta: PChar; fInherit: BOOL;
  dwDesiredAccess: DWORD;lpEventAttributes: PSecurityAttributes): HWINSTA; stdcall; external user32 name 'OpenWindowStationA';
Geht aber so leider nicht... Erhalte eine Execption an einer ganz anderen Stelle seit ich das drinn habe...

Mavarik :coder:

Bernhard Geyer 13. Nov 2009 10:17

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
Hast du dir schon mal überlegt einen ganz anderen Ansatz zu fahren (mit Hilfanwendung die bei Anmeldung von User gestartet wird und mit dem Dienst auf andere Art kommuniziert)? Die Spielregeln Interaktion Dienst <-> User-Desktop werden doch zwangsweise wegen (potentieller) Sicherheitsprobleme vom MS im Quartalsrythmus geändert.

Mavarik 13. Nov 2009 10:22

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
Ich schreibe ein Remoteprogram (KEINEN VIRUS)! lol

Hiermit will ich natürlich auch den SecureDesktop bedienen können, damit
ich dem User nicht jedes mal sagen muss klick mal auf ok usw.

Um auf den UAC desktop brauchst Du aber ein Admin Systemdienst...

Mavarik

himitsu 13. Nov 2009 10:33

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
MSDN-Library durchsuchenOpenWindowStation und auch MSDN-Library durchsuchenCreateWindowStation kennt die Windows-Unit von Delphi schon.
Und die Exception kommt wohl von dem Parameter, welcher in deiner Definition zuviel ist.
MSDN-Library durchsuchenOpenWindowStation hat keinen Secutity-Parameter :zwinker:

Zitat:

Zitat von Mavarik
hmm RTFM...

Auf was genau bezieht sich das denn?

Zitat:

Zitat von Mavarik
Ich schreibe ein Remoteprogram (KEINEN VIRUS)! lol

Versuch ich auch, also 'ne Mischung aus Remote und Terminal (nur ohne den SecureDesktop, sondern mit 'nem Eigenem).

Mavarik 13. Nov 2009 10:37

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
Zitat:

Zitat von himitsu
Auf was genau bezieht sich das denn?

HWINSTA WINAPI CreateWindowStation(
__in_opt LPCTSTR lpwinsta,
DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa
);

OK ICH=DOOF...Create nicht open... Dachte die hätten den Aufruf geändert...

:wall:

PS.: Der User soll schon sehen was ich mache... Thema ach so geht das.. na das hätte ich auch gekonnt...

Mavarik 13. Nov 2009 10:43

Re: Desktop Handle für Admin-Systemdienst ermitteln (Windows
 
Vielleicht mal reinsehen...

habe gerade dass gefunden:

Webcast zu Windows UAC

Mavarik


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz