CPS4.0 : Démarrer une application sur un moniteur particulier

Bonjour,

CPS 4.0 supporte le multi moniteur et CPS4.5 l’améliore encore.

Sous CPS4.0, il est déjà possible de forcer une application publiée à se lancer sur un moniteur particulier. Cette fonctionnalité n’est cependant pas présente dans la version de base du produit, il faut installer un hotfix coté serveur et disposer d’une version minimale du client ICA.

Coté serveur, s’assurer que le hotfix PSE400R03W2K3030 (ou PSE400R03W2K009) ou plus récent est installé.

Côté client, il faut utiliser le client 10.100 ou plus récent.

 

Ensuite, il faut sur le serveur modifier le registre à l’endroit suivant :
HKEY_LOCAL_MACHINESOFTWARECitrixCtxHookAppInit_DllsMultiple Monitor Hook

A partir de là, cela se complique.

Scenario 1: Toutes les applications doivent s’ouvrir sur un moniteur particulier

Ajouter une clef DWORD DefaultLaunchMonitor qui peut prendre les valeurs suivantes :
0x0 : lancer les applications sur le moniteur primaire
0x1 : lancer les applications sur le moniteur secondaire
0x2 : lancer les applications sur le moniteur tertiaire
etc…

Ajouter une clef DWORD appelée DefaultHooks qui peut prendre les valeurs suivantes :
0x1: Maximiser la fenêtre sur le bon moniteur (au lieu de l’ensemble des moniteurs)
0x400: Centrer les boites de de dialogue enfant
0x800: Lancer les applications sur un moniteur particulier
0x0: Désactiver le support du multimoniteur

Pour activer cela, on serait tenter de mettre DefaultHooks à 0x800 mais cela ne suffira pas pour que toutes les fonctionnalités soient utilisées ! Il faut que DefaultHooks ait pour valeur 0xC01

Pourquoi ? parce que nous devons avoir 0x800 pour forcer les applications sur un moniteur particulier ET 0x1 maximiser l’application sur le bon moniteur ET 0x400 pour que ses boites de dialogues soit centrées dans les limites de l’application (sinon ce sera au mileu de tous les moniteurs) DONC 0xC01

Scenario 2 : une seule application doit s’ouvrir sur un moniteur particulier

Ajouter une clef DWORD DefaultLaunchMonitor qui peut prendre les valeurs suivantes :
0x0 : lancer les applications sur le moniteur primaire
0x1 : lancer les applications sur le moniteur secondaire
0x2 : lancer les applications sur le moniteur tertiaire
etc…

Ajouter une clef DWORD appelée [nomduprocessus.exe] qui peut prendre les valeurs suivantes :
0x1: Maximiser la fenêtre sur le bon moniteur (au lieu de l’ensemble des moniteurs)
0x400: Centrer les boites de de dialogue enfant
0x800: Lancer les applications sur un moniteur particulier
0x0: Désactiver le support du multimoniteur

Donc les mêmes précautions sur la valeur de cette clef s’appliquent.

Pour Notepad, nous devons créer une valeur [notepad.exe] DWORD 0xC01

Leave a Reply