Page 1 sur 1

[R] focus sur une fenêtre windows

Posté : sam. 03 mai 2014 13:27
par aulus
Bonjour,

Par ce code j'ouvre une série de fenêtres Notepad , chacune contenant des textes différents, et je crée du même coup un bouton qui est destiné à réafficher au premier plan l'une des fenêtres Notepad précédemment ouvertes.
J'ai tenté ControlFocus pour ce faire, mais sans succès. Sauriez-vous me dire quelle fonction autoit ferait ce travail ?

Code : Tout sélectionner

Wile1
...
$iPID[$niPID] = ShellExecute("notepad.exe", "texte.txt", @ScriptDir, "open")
$btPID[$niPID] = GUICtrlCreateButton($niPID, 20, $haut, 240, 20)
GUICtrlSetOnEvent($btPID[$niPID], "NotepadOuvrir")
$niPID = $niPID + 1
ReDim $iPID[$niPID + 1]
Redim $btPID[$niPID + 1]
$haut = $haut + 30
...
WEnd
[b]EndFunc[/b]

[b]Func NotepadOuvrir()[/b]
if @GUI_CtrlId = $btPID[0] Then
    ControlFocus($iPID[0],"","")
elseif @GUI_CtrlId = $btPID[1] Then
    ControlFocus($iPID[1],"","")
elseif @GUI_CtrlId = $btPID[2] Then
    ControlFocus($iPID[2],"","")
elseif
        etc...
endif
[b]EndFunc[/b]
 
Je vous remercie.

Re: [..] focus sur une fenêtre windows

Posté : sam. 03 mai 2014 15:55
par mikell
WinActivate
Mais il faut le handle ou le titre de la fenêtre
Dans la mesure où le nom de fichier est écrit dans la barre de titre, qqe chose comme ça devrait le faire

Code : Tout sélectionner

Opt("WinTitleMatchMode", -2)

$txt = "texte.txt"
ShellExecute($txt)
WinActivate($txt)

Re: [..] focus sur une fenêtre windows

Posté : sam. 03 mai 2014 18:02
par aulus
Merci mikell, tout marche bien !