Hallo Herr Kosch und alle anderen,
brauche dringend eine Lösung zu folgendem Problem:
Ich versuche die DevMode-Struktur eines Druckers auf einem NT-Rechner (4.0, SP 5) zu ändern. (Änderung von Papierformat, Schacht und Ausrichtung) Ich benutze dazu (in einem Delphi 4-Prokekt) die Funktionen "OpenPrinter", "GetPrinter" und "SetPrinter" der WINSPOOL-Library. Als Parameter für "OpenPrinter" übergebe ich eine "PrinterDefaults"-Struktur, deren Wert für "DesiredAccess" auf "PRINTER_ALL_ACCESS" steht. In den Funktionen "GetPrinter" und "SetPrinter" ermittele bzw. ändere ich den DevMode-Teil der PRINTER_INFO_2 - Struktur. So weit, so gut !
Alles funktioniert ohne die geringsten Probleme auf einem Windows 95 und auf einem Windows 98 - Rechner. Auf einem NT-Rechner muß der aktive Benutzer grundsätzlich erstens Vollzugriff auf den betreffenden Drucker haben (durchaus verständlich) UND zweitens muß der aktive Benutzer auch Besitzer des Druckers sein. (Wenn der aktive NT-Benutzer "nur" Vollzugriff auf den Drucker hat und KEIN Besitzer ist, kann ich mit SetPrinter den DevMode-Teil von PRINTER_INFO_2 NICHT ändern !) Hierbei besteht jedoch schon das Problem, daß man den Besitz eines Druckers unter NT scheinbar nicht per Automatisierung (Script, etc.) setzen kann, so daß unsere Kunden mit NT jedesmal vor einem Druck in der Systemsteuerung den Besitz des Druckers übernehmen müssen.
Meine beiden Fragen:
1. Wie kann man den Besitz eines Druckers unter NT per Automatisierung
übernehmen ???
oder
2. Wie kann man den DevMode-Teil der PRINTER_INFO_2 - Struktur erfolgreich
ändern (unter NT) OHNE Besitzer des Druckers zu sein ?
Der Vollzugriff auf den Drucker müßte doch reichen. Man kann doch auch
ohne Besitzer zu sein, im Windows-Drucker-Setupdialog Änderungen an den
Einstellungen vornehmen !
Ich bin dankbar für jeden Tip !
Branco Wassmuth
brauche dringend eine Lösung zu folgendem Problem:
Ich versuche die DevMode-Struktur eines Druckers auf einem NT-Rechner (4.0, SP 5) zu ändern. (Änderung von Papierformat, Schacht und Ausrichtung) Ich benutze dazu (in einem Delphi 4-Prokekt) die Funktionen "OpenPrinter", "GetPrinter" und "SetPrinter" der WINSPOOL-Library. Als Parameter für "OpenPrinter" übergebe ich eine "PrinterDefaults"-Struktur, deren Wert für "DesiredAccess" auf "PRINTER_ALL_ACCESS" steht. In den Funktionen "GetPrinter" und "SetPrinter" ermittele bzw. ändere ich den DevMode-Teil der PRINTER_INFO_2 - Struktur. So weit, so gut !
Alles funktioniert ohne die geringsten Probleme auf einem Windows 95 und auf einem Windows 98 - Rechner. Auf einem NT-Rechner muß der aktive Benutzer grundsätzlich erstens Vollzugriff auf den betreffenden Drucker haben (durchaus verständlich) UND zweitens muß der aktive Benutzer auch Besitzer des Druckers sein. (Wenn der aktive NT-Benutzer "nur" Vollzugriff auf den Drucker hat und KEIN Besitzer ist, kann ich mit SetPrinter den DevMode-Teil von PRINTER_INFO_2 NICHT ändern !) Hierbei besteht jedoch schon das Problem, daß man den Besitz eines Druckers unter NT scheinbar nicht per Automatisierung (Script, etc.) setzen kann, so daß unsere Kunden mit NT jedesmal vor einem Druck in der Systemsteuerung den Besitz des Druckers übernehmen müssen.
Meine beiden Fragen:
1. Wie kann man den Besitz eines Druckers unter NT per Automatisierung
übernehmen ???
oder
2. Wie kann man den DevMode-Teil der PRINTER_INFO_2 - Struktur erfolgreich
ändern (unter NT) OHNE Besitzer des Druckers zu sein ?
Der Vollzugriff auf den Drucker müßte doch reichen. Man kann doch auch
ohne Besitzer zu sein, im Windows-Drucker-Setupdialog Änderungen an den
Einstellungen vornehmen !
Ich bin dankbar für jeden Tip !
Branco Wassmuth
Comment