Post by A_AhkUser » 21 Aug 2018, 20:07
-
Untitled - Notepad - il s'agit du titre de la fenêtre dans la version... anglophone du bloc-notes.
- Pour un script plus fiable, il est aussi possible d'utiliser l'identifiant unique de la fenêtre (
ID) ou du processus (
PID) considéré.
. Un
PID peut en particulier être récupéré au lancement d'un programme, lors de l'utilisation de la commande
run.
.
WinWait mets à jour la 'Last Found Window' dès lors qu'une fenêtre correspondant aux critères passés en paramètres existe ou vient à l'existence avant le temps qui lui est imparti pour ce faire. Or, dans tous les cas où, lors de l'utilisation d'une "fonction-fenêtre" ou d'une "commande-fenêtre" telle que
WinWaitActive,
WinExist etc., tous les paramètres sont omis, c'est la 'Last Found Window' qui est utilisée par défaut.
- Par ailleurs, il existe
la directive #If pour créer des hotkeys et des hotstrings sensibles au contexte.
Code: Select all
#NoEnv
#SingleInstance force
SendMode, Input
#Warn
run, notepad.exe,,, PID
WinWait, Sans titre - Bloc-notes
; ou...
; WinWait % "ahk_pid " . PID
WinActivate ; pas de paramètre: on utilise la 'Last Found Window'. Or, WinWait vient de mettre à jour la 'Last Found Window'
WinWaitActive
Send, Hello World
; ou...
; Send, {text}Hello World
Send, ^h
; ou...
; WinMenuSelectItem, % "ahk_id " . ID,, Edition, Remplacer...
; ou encore...
; WinMenuSelectItem, % "ahk_id " . ID,, 2&, 10&
return
#If WinActive("ahk_pid " PID) AND not WinExist("Remplacer") ; il est possible d'identifier une fenêtre à l'aide de plusieurs critères
#Space::
Send, ^h
WinWait, Remplacer
WinWaitActive
Send, titi
; ou...
; Send, {text}titi
return
#If
::msg::You typed msg somewhere *but not necessarily* in Notepad
#IfWinActive ahk_class Notepad
::btw::You typed btw in Notepad
#If
- [c]Untitled - Notepad[/c] - il s'agit du titre de la fenêtre dans la version... anglophone du bloc-notes. ;)
- Pour un script plus fiable, il est aussi possible d'utiliser l'identifiant unique de la fenêtre ([c]ID[/c]) ou du processus ([c]PID[/c]) considéré.
. Un [c]PID[/c] peut en particulier être récupéré au lancement d'un programme, lors de l'utilisation de la commande [c]run[/c].
. [c]WinWait[/c] mets à jour la 'Last Found Window' dès lors qu'une fenêtre correspondant aux critères passés en paramètres existe ou vient à l'existence avant le temps qui lui est imparti pour ce faire. Or, dans tous les cas où, lors de l'utilisation d'une "fonction-fenêtre" ou d'une "commande-fenêtre" telle que [c]WinWaitActive[/c], [c]WinExist[/c] [i]etc.[/i], tous les paramètres sont omis, c'est la 'Last Found Window' qui est utilisée par défaut.
[indent=1]> Plus de détails: [url=https://autohotkey.com/docs/misc/WinTitle.htm]The WinTitle Parameter & the Last Found Window[/url][/indent]
- Par ailleurs, il existe [url=https://autohotkey.com/docs/commands/_If.htm]la directive [c]#If[/c][/url] pour créer des hotkeys et des hotstrings sensibles au contexte.
[code]
#NoEnv
#SingleInstance force
SendMode, Input
#Warn
run, notepad.exe,,, PID
WinWait, Sans titre - Bloc-notes
; ou...
; WinWait % "ahk_pid " . PID
WinActivate ; pas de paramètre: on utilise la 'Last Found Window'. Or, WinWait vient de mettre à jour la 'Last Found Window'
WinWaitActive
Send, Hello World
; ou...
; Send, {text}Hello World
Send, ^h
; ou...
; WinMenuSelectItem, % "ahk_id " . ID,, Edition, Remplacer...
; ou encore...
; WinMenuSelectItem, % "ahk_id " . ID,, 2&, 10&
return
#If WinActive("ahk_pid " PID) AND not WinExist("Remplacer") ; il est possible d'identifier une fenêtre à l'aide de plusieurs critères
#Space::
Send, ^h
WinWait, Remplacer
WinWaitActive
Send, titi
; ou...
; Send, {text}titi
return
#If
::msg::You typed msg somewhere *but not necessarily* in Notepad
#IfWinActive ahk_class Notepad
::btw::You typed btw in Notepad
#If
[/code]