Announcement

Collapse
No announcement yet.

Keine Anzeige in der Taskleiste bei Citrix-Clients

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Keine Anzeige in der Taskleiste bei Citrix-Clients

    Hallo zusammen!

    Wir haben das Problem, dass unsere Software auf Citrix-Clients nur in der Taskleiste angezeigt wird, wenn das Fenster minimiert ist. Wenn man nun andere Programme öffnet und somit unser Fenster verdeckt, kann man auf unser Programm nur zugreifen, wenn man alle darüberliegenden Fenster minimiert.
    Kann man da irgendwas machen, um dieses Verhalten zu ändern? Woran liegt das überhaupt?

    Ach ja, entwickelt wurde das ganze mit Delphi5 Ent.

    Danke
    Wolfgang
    In God we trust - all others pay cash!

  • #2
    Hallo,

    >Woran liegt das überhaupt?

    bei einer mit Delphi compilierten Anwendung ist das "versteckte" (genauer gesagt auf die Größe 0,0 getrimmte) Fenster von TApplication das "Hauptfenster" der Anwendung. Der Terminalclient wird vermutlich als "Optimierung" die Daten zu diesen unsichtbaren Fenster gar nicht erhalten, so dass das dazugehörige Symbol in der Taskleiste nicht sichtbar ist.

    >Kann man da irgendwas machen, um dieses Verhalten zu ändern?

    Was passiert, wenn folgendes gemacht wird:

    <pre>

    type
    TForm2 = class(TForm)
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    procedure CreateParams(var Params: TCreateParams); override;
    end;

    var
    Form2: TForm2;

    implementation

    {$R *.DFM}

    { TForm2 }

    uses FensterSteuerungFrm;

    procedure TForm2.CreateParams(var Params: TCreateParams);
    begin
    inherited CreateParams(Params);
    Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
    end;

    </pre>

    Der Fenster-Stil <b>WS_EX_APPWINDOW</b> erzwingt die Icon-Darstellung in der Taskbar, wenn dieses Fenster sichtbar ist (wobei es auch durch andere Fenster verdeckt sein darf)

    Comment


    • #3
      Hallo Andreas Kosch

      Ich hatte das gleiche Problem. Dieser Code funktioniert einwandfrei. Ich habe jedoch ein Programm, das sowohl unter Citrix als auch auf normalen PCs läuft. Ich musste einfach noch eine Abfrage einbauen, ob es eine Citrix-Umgebung ist. Ansonsten erscheinen auf den normalen PCs 2 Icons in der Taskleiste.

      procedure TfrmMainPLS.CreateParams(var Params: TCreateParams);
      begin
      inherited CreateParams(Params);
      if CitrixIniExists then begin
      Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
      end;
      end;

      Gruss

      Sepp

      PS:

      Ich finde es immer schade, wenn sich jemand Mühe gibt, und die Fragen beantwortet, und der Fragesteller bedankt sich nicht. Darum bedanke ich mich an dieser Stelle, da mir die Antwort sehr geholfen hat

      Comment

      Working...
      X