Druckereigenschaften dauerhaft ändern

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Druckereigenschaften dauerhaft ändern

Beitrag von ts-soft »

Man kann die DLL auch wie ein Mann aufrufen, statt wie ein Mädchen :mrgreen:
Ist eine ActiveX, alle Interface-Beschreibungen befinden sich in der DLL, braucht
man also nicht lange suchen <)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Druckereigenschaften dauerhaft ändern

Beitrag von Nino »

RSBasic hat geschrieben:rundll32.exe printui.dll,PrintUIEntry /?
Interessant, danke!

Wenn man Einstellungen ändern möchte, die nur mit vorhandenen Administratorrechten dauerhaft gespeichert werden, kann man übrigens zum Aufrufen der Dialogbox statt des obigen Codes folgendes verwenden:

Code: Alles auswählen

EnableExplicit

Define PrintName$ = "PDFCreator"   ; Muss natürlich angepasst werden

ShellExecute_(#Null, "runas", "rundll32.exe", "printui.dll,PrintUIEntry /p /n " + Chr(34) + PrintName$ + Chr(34), "", #SW_NORMAL)
Grüße, Nino
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: Druckereigenschaften dauerhaft ändern

Beitrag von Shardik »

ts-soft hat geschrieben:Eigentlich sollte man es über Systemsteuerung Drucker machen :wink:
Ich wüsste jetzt nicht, warum ein Programm das machen sollte, es sei denn, es wäre ein Systemtool, das die
Systemsteuerung ersetzen/ergänzen soll.
Es gibt durchaus Gründe dafür, Druckereigenschaften dauerhaft (oder
für die Laufzeit einer bestimmten Anwendung) zu ändern. So gibt es
leider Anwendungen (wie z.B. die Runtime von Crystal Reports), die
ohne Änderungsmöglichkeit des Anwenders auf dem gerade eingestellten
Standarddrucker ausdrucken. Wird aber ein anderer spezieller Drucker
benötigt, kann man über ein eigenes Programm den Standarddrucker
abändern, die Fremd-Anwendung mit der Crystal Reports Runtime
aufrufen und nach dem Ende dieser Anwendung wieder den alten
Standarddrucker einstellen.

Oft möchte man auch nicht den Druckereigenschaften-Dialog aufrufen,
sondern man möchte einen eigenen Einstellungsdialog anzeigen oder das
Ganze soll ohne jeden Dialog im Hintergrund funktionieren. Wie man die
Druckereigenschaften über einen eigenen Dialog dauerhaft verändert (im
speziellen Beispiel Hoch-/Querdruck und Duplexdruck) habe ich bereits
im englischen Forum gezeigt (da das Beispiel schon älter ist, muß
CreateGadgetList() entfernt werden und beim ComboBoxGadget() muß
die Höhe von 70 auf 20 abgeändert werden, da zwischenzeitlich dieser
Parameter in PB abgeändert wurde):
http://www.purebasic.fr/english/viewtop ... 3&start=20

Ein anderes Beispiel von mir zeigt, wie man die Anzahl zu druckender
Kopien für den Standarddrucker dauerhaft abändert:
http://www.purebasic.fr/german/viewtopi ... 53&start=2

Wie man den Standarddrucker dauerhaft abändert, hat ts-soft hier
gezeigt:
http://www.purebasic.fr/german/viewtopi ... 94&start=9
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: Druckereigenschaften dauerhaft ändern

Beitrag von WPö »

Servus!

Hat bisher niemand gemacht - also von mir jetzt:

Willkommen im Forum, Heinz!

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Heinz123
Beiträge: 2
Registriert: 25.02.2012 09:35

Re: Druckereigenschaften dauerhaft ändern

Beitrag von Heinz123 »

WPö hat geschrieben: Hat bisher niemand gemacht - also von mir jetzt:
Willkommen im Forum, Heinz!
Danke :-)

und auch nochmal Danke an alle, die hier geantwortet haben, das hat mir sehr geholfen
Speziell den Tip mit rundll32.exe von RSBasic konnte ich so konkret benutzen!

Heinz
Antworten