Bon j'ai du abréger, mais le titre entier que je voulais mettre est "Reconfigurer des raccourcis clavier, MAIS uniquement pour une application".
J'ai un peu cherché, mais plutôt que de perdre trop de temps à chercher+tester, je voudrais demander de l'aide ici.
Ma problématique générale :
Je travaille chez un client chez qui le seul utilitaire que l'on peut utilisé est buggé. En pratique certains raccourcis claviers ne fonctionne pas et pas les moins courants puisqu'il est ici question des copier/coller/couper (CTRL+C/CTRL+V/CTRL+X).
Le point qui me pose problème :
Comme vous pouvez le voir dans le code ci-dessous je pense avoir fait le gros du travail (mais si vous voyez mieux que la méthode utilisée, je suis preneur de tout conseil), il ne me manque qu'une chose : arriver à identifier si la fenêtre active est bien celle de l'application de sorte à ne modifier les raccourcis clavier QUE si l'on est dans cette application (sinon le CTRL+C ne marcherait plus ailleurs héhé ^^).
Information complémentaire :
Avec l'espion, j'ai ceci, je pense que s'il est possible de récupérer le "PCSWS" que l'on voit ici dans "Class", ça le ferait : allez dites moi que c'est "tout con" à faire
>>>>>>>>>>>> Window Details <<<<<<<<<<<<<
Title: B - sud2.ws - [24 x 80] - USER
Class: PCSWS:Main:00400000
Code : Tout sélectionner
; TOUCHE PAUSE = Mettre en PAUSE
; TOUCHE ESC = Arreter le scripte
;
Global $Paused
;Option pour permettre l'utilisation de classname
AutoItSetOption("WinTitleMatchMode", 4)
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("+{ESC}", "Terminate")
HotKeySet("^c", "Copier")
HotKeySet("^C", "Copier")
HotKeySet("^x", "Couper")
HotKeySet("^X", "Couper")
HotKeySet("^v", "Coller")
HotKeySet("^V", "Coller")
Opt("SendKeyDownDelay", 100)
;Boite de message indiquant les raccourcis
;--------------------------------------------
MsgBox(0, "Actions", "CTRL + C : Fait CTRL + Inser pour copier" & chr(13) & "CTRL + X : Fait SHIFT + Suppr pour couper" & chr(13) & "CTRL + V : Fait SHIFT + Pg Down pour coller" & chr(13) & "PAUSE : Met/ôte la pause du programme de macros" & chr(13) & "SHIFT + ESC : Arreter le programme de macros")
;Initialisations
;---------------
$i=0
;Boucle infinie formant le corps du programme
;--------------------------------------------
While 1
Sleep(100)
Select
; ---cas ou l'on presse CTRL+C pour faire un copier en étant dans l'émulateur PCSWS = CTRL + Inser
Case $i = 1
Send("^{INSERT}")
$i=0
; ---cas ou l'on presse CTRL+X pour faire un couper en étant dans l'émulateur PCSWS = SHIFT + Suppr
Case $i = 2
Send("+{DELETE}")
$i=0
; ---cas ou l'on presse CTRL+V pour faire un coller en étant dans l'émulateur PCSWS = SHIFT + Pg Down
Case $i = 3
Send("+{PGDN}")
$i=0
EndSelect
WEnd
;********** MES FONCTIONS **********
;----------------------------------
Func Copier()
$i=1
EndFunc
;----------------------------------
Func Couper()
$i=2
EndFunc
;----------------------------------
Func Coller()
$i=3
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

