Einzelnen Beitrag anzeigen

CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#1

SetDefaultPrinterA mit SYSTEM-Rechten unter Vista

  Alt 15. Nov 2008, 22:20
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 hier mit großer Hilfe von Dezipaitor erarbeitet habe. Das gestartete Programm hat damit also auch die Umgebung des angemeldeten Benutzers. Trotzdem werden die vorhandenen Drucker nicht erkannt. Der einzige Druckername, der als Fehlercode 0 liefert, ist "Microsoft XPS Document Writer". Da sich das aber dennoch nicht auf den Standarddrucker auswirkt, nehme ich an, dass hier eine andere Druckerliste angesprochen wird, als die des aktuellen Benutzers.
Woran könnte das liegen? Was kann man da machen?

Wenn jemand das Problem rekonstruieren will, bitte beispielsweise diese Funktion in ein Testprogramm packen und dieses mit diesem Tool von Dezipaitor mit SYSTEM-Rechten unter Vista starten.

(edit: Link korrigiert)
  Mit Zitat antworten Zitat