Eigentlich reagiert Delphi an vielen Stellen auf System-Messages (Broadcasts) und aktualisiert Vieles.
Nur scheinbar hier nicht. Ich finde auch sonst nirgendwo ein efresh in der Printers-
Unit, sowie sonst nirgendwo ein Printer.Refresh im Delphi-Code.
Überall im Code findet man Kommentare ala
with Printers do // <- this rebuilds the FPrinters list
.
An dieser Stelle weitergesucht, kannst du also
Printer.FreePrinters;
ausführen und beim nächsten Zugriff [s]ist[/] wird diese Liste aktuell.
Bzw. ginge dann auch direkt
Printer.Refresh;
.
windows message printer changed
windows message printers updated
Lieferte jetzt nichts, aber du kannst ja mal via TApplicationEvents.OnMessage schauen, ob bei dir eine spezifische Message eintrifft, wenn du an den Druckern was änderst.