Druckerliste in VDI-Umgebung

Hallo zusammen,

ich verwende LL20.007 als .NET-Komponente in einem 32-Bit-Prozess.
Ein Kunde betreibt unsere Anwendung in einer VDI-Umgebung (Virtual Desktop Infrastructure).

Die VDI ist eine auf einem Server gehostete virtuelle Maschine, die beim Start einem Benutzer exklusiv zur Verfügung steht. Die VM läuft auf dem Server, dem Anwender wird ein virtueller Desktop auf seinem lokalen Gerät angezeigt. Dabei werden die auf dem lokalen Gerät installierten Druckertreiber in die VDI-Sitzung gemappt.

Wird nun unsere Anwendung gestartet, sieht LL20 alle Druckertreiber, die evtl. in der VM installiert sind, zusammen mit den auf dem lokalen Gerät installierten Druckertreibern, und alle Druckfunktionen funktionieren korrekt. Bis hierhin ist alles in Ordnung.

Jetzt wird die VDI-Sitzung mit der darin laufenden Applikation auf ein anderes lokales Gerät übernommen, unsere Applikation wird dabei nicht neu gestartet.
Dabei ändern sich die zur Verfügung stehenden Drucker. Die evtl. direkt in der VM installierten Druckertreiber sind weiterhin verfügbar, die lokal auf dem ersten Gerät installierten Druckertreiber stehen nicht mehr zur Verfügung, dafür sind jetzt die auf dem zweiten Gerät lokal installierten Druckertreiber verfügbar.
Bei der Übernahme der VDI-Sitzung vom ersten auf das zweite Gerät wird die gemappte Druckerliste erneuert.

Das Problem ist jetzt, dass LL20 nicht die aktualisierte Druckerliste sieht, sondern immer noch die Druckerliste des ersten Gerätes. Erst nach Neustart unserer Applikation sieht LL20 die aktualisierte Druckerliste.
Ein beliebiges anderes Programm (z.B. Microsoft Wordpad) sieht die aktualisierte Druckerliste sofort ohne Neustart.

Wie kann ich LL20 dazu bringen, die Druckerliste zu aktualisieren?

Danke für eure Unterstützung und viele Grüsse

Hallo item,
vielen Dank für Ihren Beitrag.

Sie müssten aus Ihrer Anwendung heraus eine Message senden, z.B.

PostMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0)

Eigentlich könnte man erwarten, dass Windows rsp. die VDI beim „Übertragen“ das von sich aus macht, ist leider
nicht so.

Sie können im DEBWIN (debwin3.exe, debugtool) prüfen, ob die Nachricht angekommen ist.

-Wenn die Nachricht ankommt, steht da „WM_SETTINGCHANGE“ im LOG, und dann werden Default-Drucker und Caches geleert.
-Wenn es ankommt, und nicht hilft -> gibt es auch eine Nachricht
-Wenn es nicht ankommt ->auch hier wird eine Nachricht ausgegeben.

Mit freundlichen Grüßen

Erdal Alacali
Technischer Support
combit GmbH

Hallo Herr Alacali,

hier noch meine Rückmeldung: Mit Ihrem Hinweis konnte ich das Problem beseitigen.
Wichtig ist, dass die Message erst gesendet wird, nachdem das LL-Objekt erstellt wurde.
Vielen Dank für die Unterstützung.