Mit dem "richtigen" Weg ist das immer so'ne Sache…
Geht das, was Du da gerne hättest?
Wenn Du nur die PB-Bordmittel (Printer Modul) benutzen willst, dann eher nicht, wie Du auch schon vermutest. Ausrichtung auf Defaultdrucker

Einerseits schreibst Du von Plattformunabhängigkeit und dann wiederum von Registry-Hacks - das Eine schließt das Andere aus - Registry ist nun mal Windows-only!
Wenn Du's genauso haben willst, wie angedacht, wirst Du nicht umhin kommen, die APIs der Ziel-Plattformen zu benutzen und mit COMPILER Direktiven zu arbeiten.
Also unter Windows (ganz grob) etwa:
EnumPrinters
OpenPrinter
WritePrinter
ClosePrinter
etc. und das ganze mal drei (Mac OS, Linux).
Evtl. hilft's auch, die ganze Druckerei sein zu lassen und einen Paradigmenshift zu machen: Wir drucken z.B. überhaupt nichts mehr aus unseren Anwendungen - wird alles als PDF ausgegeben und ggfs. an Verteiler gemailt oder irgendwo im Netzwerk zum Konsum angeboten.
Das schont die Umwelt, ist archivierbar, kann auf versch. Arten versendet werden und leidet nicht unter all den Problemen, die gerne mal die Drucker quälen (Toner, offline etc) und ist auch noch wesentlich schneller.