Page 1 sur 1

[..] Besoin d'aide pour un code d'activation d'un 2eme écran

Posté : lun. 11 avr. 2011 13:42
par steph034
Bonjour,

J'utilise le logiciel intelliremote (utilitaire de gestion de télécommande) pour commander un logiciel de mon PC (logiciel XBMC).
Il est possible sous ce logiciel d'utiliser du script autoIT pour chaque touche de la telecommande utilisée.

J'aimerais qu'à l'appui d'une touche, celle ci réalise ce que j'ai programmé (lecture, bas, haut, etc...) mais que cela se fasse exclusivement sur le deuxième écran (dans le cas d'un PC avec deux écrans et le deuxième en bureau étendu)

en effet si je manipule la souris sur le pc et l'écran 1, le focus de l'écran 2 est perdu et mes commandes teclo ne fonctionne pas

existe t-il des commandes "simples" autoIt permettant de réaliser cela ?

merci

Re: [..] Besoin d'aide pour un code d'activation d'un 2eme é

Posté : lun. 11 avr. 2011 14:33
par sksbir
Bonjour

- Autoit permet de simuler la souris et le clavier : Dans ce cas là, c'est pas adapté, vu qu'il va entrer en concurrence avec tes actions à toi sur l'écran principal.

- Autoit permet de manipuler des fenêtres, par exemple avec la commande winactivate, ce qui redonne le focus sur la fenêtre choisie: Dans ce cas là, c'est pas adapté non plus, vu que tu vas perdre le focus sur la fenêtre où tu travailles.

De toute façon, tu peux pas t'en sortir si le logiciel que tu veux piloter n'a pas d'autres moyen de pilotage que sa fenêtre : tu vas forcément perturber ton propre travail sur l'écran principal.

Regarde du coté de VLC par exemple, il y a moyen de le piloter à distance sans passer par sa fenetre, on peut faire ça avec internet explorer également ( voir IE.au3 ). Pour ton logiciel, je ne sais pas.

Mais sinon, la commande que tu cherches pour reprendre le focus sur la fenêtre qui va bien, c'est "winactivate".

Re: [..] Besoin d'aide pour un code d'activation d'un 2eme é

Posté : mar. 12 avr. 2011 08:45
par steph034
Bonjour, en fait mon logiciel est XBMC puis MPC HD (quand le film est lancé).

Le but aurait été que pour ces deux process uniquement les commandes envoyées soient en focus sur un écran, et toutes les autres commandes (tapées au clavier ou autre) soit sur le 1er écran.

Ou alors est ce que l'on peut activer l'écran 2 quand on envoi une ou chaque commande (au risque de bloquer pendant quelques secondes l'écran 1) ? a voir après les impacts que cela peut avoir.

Intelliremote peut donc envoyer des ordres pour commanders les deux logiciels mais on peut aussi coder pour chaque ordre un script autoIT, d'ou ma question car je ne connais pas l'étendu de ce mode de scripting.

merci

Re: [..] Besoin d'aide pour un code d'activation d'un 2eme é

Posté : mar. 12 avr. 2011 16:08
par sksbir
Dans le principe, c'est pas les écrans qu'on active, mais des fenêtres. Autoit est capable de manipuler des fenêtres, et je pense qu'il est donc capable de faire ce que tu désires faire avec tes applications.

Je t'invite à t'installer autoit et l'éditeur qui est fourni avec, puis à consulter le tutoriel qui est proposé via l’icône en haut à gauche de cette page.

Re: [..] Besoin d'aide pour un code d'activation d'un 2eme é

Posté : lun. 25 avr. 2011 14:19
par steph034
bonjour,

j'ai un peu avancé, l'activation fonctionne toujours si le programme actif est XBMC (la fenetre doit s'appelée pareil même si c'est un logiciel en plein écran sans nom de fenetre), enfin bon là c'est du tout bon.

Par contre quand je lance mes vidéos, là ca marche pas toujours, j'ai indiqué le nom de la fenetre (si on passe en mode avec fenetre on voit ce titre), mais le prog est lui aussi tjs lancé en full screen et sans affichage des menus et autres bandeaux, et je me demande bien si le script peut récéupérer ce nom dans ce ca là.

Voici la commande passée : WinActivate ("Media Player Classic Home Cinema v1.5.1.2958","")

n'existe pas un moyen simple pour activer l'écran ou un process donné (tjs le même) tourne ?

merci

Re: [..] Besoin d'aide pour un code d'activation d'un 2eme é

Posté : mar. 26 avr. 2011 01:35
par overflow
Dans l idée tu enregistre le nom de la fenêtre active
tu active la fenêtre désirée
tu exécute ta commande
et tu ré active la fenêtre enregistré au début
et fin de programme

pour enregistrer la fenetre active , ce bout de code peut faire l affaire

Code : Tout sélectionner


$LastActive=GetActive()
msgbox(0,"",$LastActive)

Func GetActive()
    $var = WinList()

    For $i = 1 to $var[0][0]

        If $var[$i][0] <> "" AND WinActive($var[$i][0]) Then 
            Return $var[$i][0]
        EndIf
    Next

EndFunc

 
après ca tu active la fenêtre voulu avec un "winactivate"

tu fait ta soupe . . . .

tu active la fenêtre sauvée "winactivate($LastActive)"

et ca doit être ca


tu doit pouvoir evité les prob de manip avec blockinput aussi