Demande d'avis et conseil sur ce script (Remake ALT+TAB)
Posté : mer. 09 mars 2016 18:12
				
				Salut,
J'ai créé un script permettant de basculer entre diverses fenêtres choisies (un remake du ALT+TAB de windows en quelques sortes).
Il fonctionne donc ce que j'attends ici ce sont des avis expérimentés sur ce script :
- ce qui est bien
- ce qu'il faut améliorer (et comment)
- existe-t-il des solutions (simples) pour faire la même chose avec de meilleures performances ?
Merci  .
.
			J'ai créé un script permettant de basculer entre diverses fenêtres choisies (un remake du ALT+TAB de windows en quelques sortes).
Il fonctionne donc ce que j'attends ici ce sont des avis expérimentés sur ce script :
- ce qui est bien
- ce qu'il faut améliorer (et comment)
- existe-t-il des solutions (simples) pour faire la même chose avec de meilleures performances ?
Code : Tout sélectionner
;
;=============================================================================================================================================
; L'objectif de ce scripte est de reprogrammer la touche ² afin qu'elle permette de passer d'une fenêtre à une autre parmi celles choisies.
; Lorsque l'on change de fenêtre active, on minimise l'actuelle
;
; La 1ère pression de la touche ² minimisera la dernière fenêtre et activera la première.
;
; Note d'utilisation : pour pouvoir ré-arranger à volonté des icônes dans la barre de tâches Windows, on peut utiliser le logiciel gratuit
;                      "7+ Taskbar Tweaker" et sélectionner l'option "Ne pas grouper"
;
;=============================================================================================================================================
;
; COMBINAISON SHIFT+PAUSE = Mettre en PAUSE
; COMBINAISON SHIFT+ESC   = Arreter le scripte
;
; Sources d'informations pour la récupération de caractéristiques et l'utilisation du code "handle" identifiant une fenêtre:
;	http://autoitscript.fr/forum/viewtopic.php?t=5731
;	http://www.autoitscript.fr/forum/viewtopic.php?t=975
;	http://autoitscript.fr/forum/viewtopic.php?t=5731
Global $Paused
HotKeySet("+{PAUSE}", "TogglePause")
HotKeySet("+{ESC}", "Terminate")
HotKeySet("{F9}", "Memo_Fenetres")
HotKeySet("{²}", "Switch_Fen")
Opt("SendKeyDownDelay", 100)
;Initialisations
;--------------- 
$NbFen = 0
$NbFen2 = 0
$NumFenMemo = 0
$NumFenActive = 0
$t = 100
;Boite de message indiquant les raccourcis
;-------------------------------------------
MsgBox(0, "Actions", "F9                        : Récupère et affiche les identifiants des N fenêtres actives" & chr(13) _
				   & "²                           : Switch entre les N fenêtres dans l'ordre de mémorisation " & chr(13) _
				   & "SHIFT + PAUSE : Mettre/ôter la pause du programme de macros" & chr(13) _
				   & "SHIFT + ESC      : Arreter le programme de macros")
;Boite de message demandant le nombre de fenêtre entre lesquelles on veut switcher et dimensionnement du tableau (attention index commençant à 0 !) 
;----------------------------------------------------------------------------------------------------------------------------------------------------
;InputBox ( "title", "prompt" [, "default" [, "password char" [, width [, height [, left [, top [, timeout [, hwnd]]]]]]]] )
While $NbFen <= 0
   $NbFen = InputBox("Nombre de fenêtres à mémoriser", "Combien de fenêtres voulez-vous mémoriser ?")
WEnd
Global $TabFen[$NbFen]
;MsgBox(0, "Valeurs tableau", "$TabFen[0]=" & $TabFen[0] & chr(13) & "$TabFen[1]=" & $TabFen[1])
;Boucle infinie formant le corps du programme
;---------------------------------------------
While 1
	Sleep($t)
WEnd
;********** MES FONCTIONS **********
;Mémorisation des ID des N fenêtres (touche F9)
;-----------------------------------------------
Func Memo_Fenetres()
   If $NumFenMemo < $NbFen Then
	  $NumFenMemo = $NumFenMemo + 1
	  $TabFen[$NumFenMemo - 1] = WinGetHandle("[ACTIVE]", "")
	  $NumFenActive = $NumFenMemo
	  MsgBox(0, "Récupération caractéristique fenêtre active", "Le Handle de la fenêtre active N°= " & $NumFenActive & " est : " & $TabFen[$NumFenActive - 1])
   Else
	  $NbFen2 = InputBox("Nombre de fenêtres à mémoriser", "Pour refaire mémorisation des fenêtres entrer leur nombre, sinon pressez sur la touche entrée ou cliquez sur OK ")
	  IF $NbFen2 > 0 Then
		 $NbFen = $NbFen2
		 Global $TabFen[$NbFen]
		 $NumFenMemo = 0
	  EndIf
   EndIf
EndFunc
;Balayage des fenêtres mémorisées en minimisant celle que l'on "quitte" (touche ²)
;-----------------------------------------------------------------------------------
Func Switch_Fen()
   WinSetState($TabFen[$NumFenActive - 1], "", @SW_MINIMIZE)
   If $NumFenActive < $NbFen Then
	  $NumFenActive = $NumFenActive + 1
   Else
	  $NumFenActive = 1
   EndIf
   WinActivate($TabFen[$NumFenActive - 1])
EndFunc
;----------------------------------
; Presser Pause/Attn pour mettre en pause
Func TogglePause()
     $Paused = NOT $Paused
     While $Paused
         sleep(100)
         ToolTip('Script is "Paused"',0,0)
     WEnd
;     ToolTip("")
EndFunc
;----------------------------------
; Presser Esc pour arreter le scripte
Func Terminate()
     Exit 0
EndFunc
 .
. .
.