Standarddrucker Anwendungsbezogen

DJServs

Lt. Commander
Registriert
Jan. 2004
Beiträge
1.147
Hallo zusammen.
In der Arbeit nutze ich mehrere Drucker, einen PDF Converter, einen Laserdrucker und einen Farbnetzwerkdrucker. Allerdings ist es so, dass ich das Anwendungsmäßig genau bestimmen kann wann ich welchen Drucker brauche. Bei "Word" zum Beispiel immer den Laserdrucker, beim "Microsoft Office Document Imaging" den FreePDF Drucker und beim "Adobe Reader" immer den Netzwerkdrucker.
Es wäre jetzt "nice to have", wenn ich für jede Anwendung einen "Standarddrucker" definieren könnte, da ich so nicht immer über das Druckmenü gehen muss und den richtigen Drucker auswählen.
Kennt jemand eine Möglichkeit das möglichst einfach zu realisieren?

Arbeitsumgebung ist WindowsXP SP3.
 
Möglichst einfach ist wohl trotzdem noch kompliziert. Meines Wissens nach kann Windows das nicht von Haus aus, da musst du ein wenig nachhelfen. Eine Möglichkeit wäre VBScript. Du hinterlegst für die Anwendungsverknüpfen nicht die Exe-Datei, sondern ein individuelles Skript.

In dem Skript wird dann (a) der Standard-Drucker für die jeweilige Anwendung aktiviert und (b) die Anwendung gestartet. Das sollte auch funktionieren.

Problematisch ist auch das Öffnen von Dateien und nicht das Starten des Programms. Da müsstest du schon an die Registry dran.
 
Das sehe ich ähnlich wie mein Vorposter. Letztlich , ist das ja nun auch nur ein Klick um den richtigen Drucker auszuwählen.

Trotzdem ist das ein interessantes Bedürfnis, woraufhin ich mich grade mal ne halbe Stunde damit befasst habe.

Mit vbs würde ich das wie folgt lösen:

(ab hier kopieren)

Anwendungsname = "WINWORD.exe" 'Ausführbare Datei des jeweiligen Programms.
Druckername = "Microsoft XPS Document Writer" 'Der DRUCKERNAME der vor dem Start des Programms als Standard gesetzt werden soll.
'Den Namen kann man im Druckermenu nachvollziehen. (z.b.: Microsoft XPS Document Writer)

Set objShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")

objNetwork.SetDefaultPrinter Druckername
objShell.Run Anwendungsname

(kopieren ende)


Das ganze in eine Datei mit vbs Endung(natürlich ohne diese kopieren Hinweise).
Bei mir funktinert die Geschichte ganz gut.

Du legst das z.b. : íns gleiche Verzeichnis wie die WINWORD.exe und führst nun immer die Word.vbs mit dem Code drinne aus anstatt die Exe selbst aufzurufen.

Für die anderen Programme musste oben im Script die Beiden Variablen anpassen!

Problemtaik dabei ist du hast dann solltest du Verknüpfungen anlegen für jede Anwendung eine aufm Desktop liegen was ziemlich unschön ist. Aber was solls wennde Windows 7 oder Vista hast, dann kannste dir ja die Verknüpfungen schön in die Taskbar oder ans Startmenu heften.

Andere Ideen wie einen Dienst der die ganze Zeit mit na Schleife läuft die guckt wird welches Programm grade on top ist und dann den Standarddrucker festlegt, erspare ich mir mal weil das wie ich finde ziemlich dirty wäre.


Tschöö
 
Das hab ich mir fast gedacht, naja dann werd ich so weitermachen wie bisher. Das mit dem Script funktioniert nicht wirklich, weil nicht die anwendungen direkt gestarttet werden, sondern über andere programme aufgerufen werden, so werden die word dateien beispielsweise aus einem datenbanksystem heraus automatisiert erstellt und die pdfs kommen per email, da wärs zuviel arbeit immer den adobe reader aufzumachen und dann erst die datei.

Naja dacht ich mir fast dass man da wohl nix machen kann, aber trotzdem danke für eure mühe.
 
DJServs schrieb:
Naja dacht ich mir fast dass man da wohl nix machen kann
Also, bei Word würde ich ein Mal das Drucken am korrekten Drucker aufzeichnen und dieses Makro dann in die Normal.dot einbinden. Du kannst dann zB [Strg][P] oder/und den Menübefehl oder auch die Schaltfläche mit dem Makro verbinden. Das geht sehr schön ...
 
Selbst wenn du die Dateien direkt öffnest: In der Registry sind die Ausführen-Befehle zu einzelnen Datei-Endungen gespeichert. Du kannst auch hier einfach nur das Script einbinden und fertig.
 
Zurück
Oben