Page 1 sur 1
[R] Mettre le focus sur un objet créé
Posté : ven. 01 août 2014 15:15
par Benchozer
Bonjour à toutes et à tous !
J'essaye de m'être le focus sur la fenêtre que je viens d'ouvrir avec :
Code : Tout sélectionner
$Gui = GUICreate("Terminal serveur", 860, 540, -1, -1, $WS_OVERLAPPEDWINDOW)
dans le but de pouvoir lui envoyer des touches de claviers ou autres ! Comment je peux faire ? :/
Merci la compagnie

Re: [..] Mettre le focus sur un objet créé
Posté : ven. 01 août 2014 16:48
par mikell
Tu peux t'être le focus avec WinActivate
Re: [..] Mettre le focus sur un objet créé
Posté : lun. 04 août 2014 08:49
par Benchozer
Bonjour,
juste avec WinActivate ca va etre dur vu le code.. :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Dim $Gui
$host = "" ;<<<<<<< enter here the host name or ip address
;~ Création de la GUI
$Gui = GUICreate("Terminal serveur", 860, 540, -1, -1, $WS_OVERLAPPEDWINDOW)
$oRDP = ObjCreate("MsTscAx.MsTscAx.2")
$oRDP_Ctrl = GUICtrlCreateObj($oRDP, 0, 0, 860, 540)
GUICtrlSetResizing($oRDP_Ctrl, $GUI_DOCKBORDERS)
$oRDP.Fullscreen = False
$oRDP.ColorDepth = 32
$oRDP.AdvancedSettings3.SmartSizing = True
$oRDP.Server = $host
$oRDP.DesktopWidth = @DesktopWidth
$oRDP.DesktopHeight = @DesktopHeight
$oRDP.UserName = "" ;<<<<<<< enter here the user name
$oRDP.Domain = ""
$oRDP.AdvancedSettings2.ClearTextPassword = ""
$oRDP.ConnectingText = "Connecting to " & $host
$oRDP.DisconnectedText = "Disconnected from " & $host
$oRDP.StartConnected = True
$oRDP.Connect()
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
GUISetOnEvent($GUI_EVENT_RESTORE, "Redraw")
;~ Création des divers controles
$oShel = ObjCreate("shell.application")
$oShel_Ctrl = GUICtrlCreateObj($oShel, 0, 0, 860, 540)
Send("#r")
Send("C:\Program Files (x86)\scripts\PSTools\chrome.bat")
Send ("{ENTER}")
Send ("{BROWSER_FAVORITES}")
GUISetState()
While(True)
Sleep(10)
WEnd
Func Redraw()
_WinAPI_RedrawWindow($Gui, 0, 0, BitOR($RDW_INVALIDATE, $RDW_UPDATENOW, $RDW_ALLCHILDREN))
EndFunc
Func quit()
Exit
EndFunc
Lorsque je réalise
C'est un script avec psExec qui ouvre chrome..
Mais il n'y a pas de focus sur cette fenetre et j'aimerais ouvrir des choses dans celle-ci
Merci
Re: [..] Mettre le focus sur un objet créé
Posté : lun. 04 août 2014 10:27
par jguinch
Essai d'utiliser ControlSend eu lieu de Send :
Code : Tout sélectionner
ControlSend($Gui, "", "", "#r")
ControlSend($Gui, "", "", "C:\Program Files (x86)\scripts\PSTools\chrome.bat")
Re: [..] Mettre le focus sur un objet créé
Posté : lun. 04 août 2014 10:40
par Benchozer
La ca marche plus :/
En fait je lance un script autoIT qui lance un .bat qui contient un psExec.
Et a la suite de ce psExec (qui lance chrome) sur un remote desktop je voudrais que le focus soit sur cette fenetre (dans l'idée d'ouvrir une adresse plus spécifique par la suite)
Re: [..] Mettre le focus sur un objet créé
Posté : lun. 04 août 2014 11:02
par jguinch
Je comprends pas...
Ton .bat, tu le lance en local ou sur le poste distant (RDP) ?
Re: [..] Mettre le focus sur un objet créé
Posté : lun. 04 août 2014 11:10
par Benchozer
Je reprend :
1 - Je lance un script autoIT qui se trouve sur ma machine.
2 - Le script ouvre une session en RDP (terminal serveur) et exécute vers la fin #r qui ouvre la petite fenetre "executer" (sur ma machine) dans laquelle je met le chemin d'accès de chrome.bat
3 - Le chrome.bat (toujours sur ma machine) contient un psExec qui ouvre chrome dans le terminal serveur
4 - Je me retrouve avec un terminal serveur (distant) dans lequel j'ai ouvert chrome sans focus
5 - Je voudrais désormais avoir le focus sur cette fenetre (qui se trouve dans le terminal serveur) pour rediriger vers une adresse plus spécifique que google..
Re: [..] Mettre le focus sur un objet créé
Posté : lun. 04 août 2014 11:21
par jguinch
OK, donc tout d'abord, #r ne sert à rien.
Il te suffit d'utiliser Run pour lancer ton .bat.
Ensuite, si j'ai bien compris, tu souhaites plus ou moins piloter ta machine distante (chrome par ex).
Ca c'est un problème pas simple...
L'idéal serait plutôt d'utiliser PSEXEC pour lancer un script sur le poste distant, script qui s’occuperait de piloter ce que tu veux.
Re: [..] Mettre le focus sur un objet créé
Posté : lun. 04 août 2014 15:08
par Benchozer
Un grand merci a toi j'ai réalisé un script qui execute un autre script (distant) qui effectue toutes les bonnes petites actions que je voulais réaliser, et tout ca beaucoup plus facilement. Quel idiot suis-je de ne pas y avoir pensé.. Muchas gracias !
