Hast du statt der glorifizierten globalen Variable
Vcl.Printers.Printer()
mal
Vcl.Printers.TPrinter.Create()
versucht? Da sollte dann die aktuelle Druckerliste drinstehen.
Danke, mit
Vcl.Printers.TPrinter.Create()
klappt es schon mal immer den aktuellen Stand einzulesen.
Jetzt brauche ich nur noch ein Event/Message, mit dem ich erkennen kann, dass sich bei den Druckern was geändert hat. Ich habe ganz dunkel in Erinnerung, dass es da eine Windows-Message gab. Ich meine das war irgendwas indirektes. Also so eine allgemeine Message wie "Irgendwas an den Systemeinstellungen" wurde geändert. Mehr fällt mir aber nicht ein und ich finde mit Google auch nichts.