![]() |
SetDefaultPrinterA mit SYSTEM-Rechten unter Vista
Ich habe das Problem, dass die Funktion SetDefaultPrinterA mit 1801 (Unbekannter Drucker) fehlschlägt, wenn das aktive Programm unter Vista mit SYSTEM-Rechten läuft (durch Service gestartet).
Unter XP funktioniert das gleiche Szenario problemlos. Unter Vista geht es auch, wenn das Programm mit normalen Rechten läuft. Dem ganzen liegt die Funktion zu Grunde, die ich ![]() Woran könnte das liegen? Was kann man da machen? Wenn jemand das Problem rekonstruieren will, bitte beispielsweise ![]() ![]() (edit: Link korrigiert) |
Re: SetDefaultPrinterA mit SYSTEM-Rechten unter Vista
Zitat:
Wenn ich notepad starte und drucken will, dann bekomme ich die im System installierten Drucker. Drucker von meinem Benutzer sind da nicht drin. Zudem darf man nicht erwarten, dass mit SYSTEM alles funktioniert. Da hat man soviel Macht, dass andere Komponenten mit diesem Account erst garnicht kommunizieren können - so funktioniert bei mir kein einziger Drucker. Hmm... Aber warum willst du ein Prog mit SYSTEM Rechten standardmäßig laufen lassen? So ein Programm sollte wirklich nur zum Entwickeln und "ausprobieren" sein. PS. Der Link zur DelphiLibrary funkz nicht. PPS. Hast du den benutzer personifiziert?? (Impersonate) |
Re: SetDefaultPrinterA mit SYSTEM-Rechten unter Vista
Zitat:
Zitat:
Zitat:
Hast Du denn bei Deinem RunAsSYS gemacht? Das Resultat (ob durch meinen Service oder durch das Tool) ist ja wie gesagt das gleiche. Edit: Ach nein, Du meinst im Programm selbst, oder? Nein, habe ich auch nicht. Ich werde das mal testen... |
Re: SetDefaultPrinterA mit SYSTEM-Rechten unter Vista
Mit ImpersonateLoggedOnUser geht das. Vielen Dank für den Hinweis!
Ich dachte, dass das Mitgeben des EnvironmentBlocks im Prinzip das gleiche tut... |
Re: SetDefaultPrinterA mit SYSTEM-Rechten unter Vista
CreateProcessAsUser lässt einen neuen Prozess mit dem Token laufen.
Willst du Funktionen unter diesem Benutzer laufen lassen, dann muss es mit ImpersonateLoggedonUser gemacht werden. Dann bekommt der Thread das Token zugeteilt, welches die Funktionen verwenden - aber nicht alle! Damit nutzten die Funktionen auch die Registry-Einträge dieses Benutzers und damit alle seine Einstellungen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 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-2025 by Thomas Breitkreuz