Je viens de faire un script pour autohotkey qui accomplit ceci dans Windows 10 pour un maximum de 10 ordinateurs de bureau.
Comment le faire fonctionner :
Télécharger et installer autohotkey . Copiez et collez le code ci-dessous dans le bloc-notes et enregistrez-le avec l'extension .ahk.
Je vous suggère de créer un raccourci de ce fichier dans votre dossier de démarrage afin qu'il s'exécute au démarrage de Windows.
TOUCHES DE RACCOURCI PAR DÉFAUT :
Changez de bureau : WIN+DESKTOP NUMBER (0 = bureau numéro 10)
Nouveau bureau : CTRL+WIN+D
Fermez le bureau : CTRL+WIN+F4
Afficher l'état du bureau : WIN+
IMPORTANT :
Pour que cela fonctionne, vous devez UNIQUEMENT utiliser des touches de raccourci pour ouvrir, fermer et changer de bureau car le script écoute ces touches de raccourci pour connaître le nombre actuel et total de bureaux.
Si vous créez, fermez ou changez de bureau via le menu WIN+TAB avec la souris, le script cessera de fonctionner. Afin de le faire fonctionner à nouveau, vous devrez modifier les deux premières lignes pour refléter l'état actuel de vos bureaux. (desktopcount/currentdesktop)
Cela ne veut pas dire que vous ne pouvez pas utiliser l'écran WIN+TAB pour avoir un aperçu de vos bureaux actuels. Vous pouvez en fait l'utiliser en combinaison avec les touches de raccourci pour organiser vos bureaux. Oui, les touches de raccourci fonctionnent toujours lorsque le visualiseur de tâches de Windows est ouvert ! (WIN+TAB) Il suffit de ne pas utiliser la souris ! !!
Aussi, attendez que le script se charge après le démarrage de Windows avant de créer de nouveaux bureaux ou cela ne fonctionnera pas. Cela peut prendre un moment en fonction du nombre de programmes de démarrage que vous avez.
Ok, j'ai ajouté une chose de plus pour rendre plus facile la re-synchronisation du script avec l'état de votre bureau. Il y a maintenant une touche de raccourci qui affichera l'état dans lequel le script croit que les bureaux sont, donc tout ce que vous avez à faire est d'ajuster vos bureaux avec la souris pour correspondre au script et tout sera à nouveau synchronisé ! Pour moi, avec un clavier suisse, cela fonctionnait bien d'avoir la touche ' ? à côté de 0 et cela a du sens avec un ? dessus, mais sur d'autres claviers, vous pouvez souhaiter changer cela, ce qui peut être fait facilement en changeant la ligne juste après la touche de raccourci pour 0/10 (commençant par #') par ce que vous voulez.
En fait, je viens de réaliser.... que tant que le nombre de bureaux est correct, la création d'un nouveau bureau re-synchronisera automatiquement la valeur du bureau actuel.
(Les lignes commençant par ; sont des commentaires et n'affectent pas le script).
Code :
#NoTrayIcon
;If the script stops working:
;Change the following values to reflect your current desktop state and reload the script.
;Remember to change them back to 1 after reloading the script if you have it set to start with Windows
desktopcount := 1
currentdesktop := 1
;You can change the hotkeys for creating, closing, and switching desktops bellow.
;The current hotkeys are CTRL+WIN+D for new desktop, CTRL+WIN+F4 to close desktop
;and WIN+NUMBER for switching desktops.
;For example, to change the hotkey for new desktop replace ^#D bellow with the desired hotkey.
;Refer to the autohotkey documentation for a full list of symbols refering to modifier keys,
;as you can see ^ is CTRL and # is WIN key.
;If you wanted to change the switch desktop from WIN key to CTRL for example you would have
;to replace the # before each number to a ^
^#D::NewDesktop()
^#F4::CloseDesktop()
#1::SwitchDesktop(1)
#2::SwitchDesktop(2)
#3::SwitchDesktop(3)
#4::SwitchDesktop(4)
#5::SwitchDesktop(5)
#6::SwitchDesktop(6)
#7::SwitchDesktop(7)
#8::SwitchDesktop(8)
#9::SwitchDesktop(9)
#0::SwitchDesktop(10)
#'::MsgBox Desktop Count = %desktopcount%`nCurrent Desktop = %currentdesktop%
;Do not change anything after this line, unless you know what you are doing ;)
;-----------------------------------------------------------------------------------------------
SwitchDesktop(desktop)
{
global desktopcount
global currentdesktop
desktopdiff := desktop - currentdesktop
if (desktop > desktopcount)
{
return
}
if (desktopdiff < 0)
{
desktopdiff *= -1
Loop %desktopdiff%
{
Send ^#{Left}
}
}
else if (desktopdiff > 0)
{
Loop %desktopdiff%
{
Send ^#{Right}
}
}
currentdesktop := desktop
}
NewDesktop()
{
global desktopcount
global currentdesktop
if (desktopcount > 9)
{
return
}
desktopcount ++
currentdesktop := desktopcount
Send ^#d
}
CloseDesktop()
{
global desktopcount
global currentdesktop
desktopcount --
if (currentdesktop != 1)
{
currentdesktop --
}
Send ^#{f4}
}