OpenPrinter liefert ERROR_ACCESS_DENIED unter Vista

24/01/2008 - 23:19 von Matthias Friedrich | Report spam
Hallo NG,

ich versuche vergeblich unter Vista die OpenPrinter-Methode aufzurufen. Wenn
ich in den PRINTER_DEFAULTS den Wert SERVER_ACCESS_ADMINISTER angebe,
schlàgt der Aufruf fehl und GetLastError liefert immer den Wert 5
(ERROR_ACCESS_DENIED). Gibt es unter Vista etwas zu beachten, dass unter
Windows XP nicht erforderlich ist?

Hier noch die API-Methode, falls sie von Interesse sein könnte...

<DllImport("winspool.drv", _
CharSet:=CharSet.Auto, _
EntryPoint:="OpenPrinter", _
SetLastError:=True)> _
Friend Shared Function OpenPrinter( _
<MarshalAs(UnmanagedType.LPTStr)> _
ByVal pPrinterName As String, _
ByRef hPrinter As IntPtr, _
ByRef printerDefaults As PRINTER_DEFAULTS) As Boolean
End Function

Vielen Dank,
Matthias
 

Lesen sie die antworten

#1 Thorsten Doerfler
25/01/2008 - 00:05 | Warnen spam
Matthias Friedrich schrieb:
ich versuche vergeblich unter Vista die OpenPrinter-Methode aufzurufen. Wenn
ich in den PRINTER_DEFAULTS den Wert SERVER_ACCESS_ADMINISTER angebe,
schlàgt der Aufruf fehl und GetLastError liefert immer den Wert 5
(ERROR_ACCESS_DENIED). Gibt es unter Vista etwas zu beachten, dass unter
Windows XP nicht erforderlich ist?



Ja, dass Du zwar Mitglied der Administratoren sein kannst, Dir die UAC
diese Rechte aber erst gibt, wenn Du "bitte, bitte" sagst bzw. Deine
Anwendung eben "Als Administrator" ausführst. By default hast Du unter
Vista nur Benutzerrechte.

Im übrigen hat man das unter XP und früher auch gehabt, wenn man es
gleich richtig eingerichtet hat, mit einem Benutzerkonto arbeitet und
nicht mit dem standardmàßigen Administrator-Konto.

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen