4 votes

Application permettant de basculer automatiquement entre deux applications sous Windows

Existe-t-il une application qui permette à l'ordinateur de basculer (mettre au point) entre deux applications différentes, sur une minuterie ? Ceci est pour Windows 7.

J'en ai besoin pour un écran qui sera affiché publiquement aux clients. Je veux que l'écran bascule entre deux applications différentes toutes les 30 secondes, par exemple. Je me dis qu'il y a suffisamment d'entreprises qui ont des écrans destinés aux clients de nos jours pour que quelque chose de simple comme ça existe !

10voto

MaQleod Points 12844

Oui, il s'appelle AutoIt .

Vous utiliseriez quelque chose comme ça :

While 1 ;loop indefinitely
    WinActivate("notepad","") ;give focus to notepad
    Sleep(30000) ;sleep 30 seconds
    WinActivate("wordpad","") ;give focus to wordpad
    Sleep(30000) ;sleep 30 seconds
WEnd

WinActivate() donne le focus à la fenêtre dont le titre correspond exactement ou le plus étroitement, dans les cas où il y en a deux qui correspondent, il donne le focus à la fenêtre la plus récemment activée. Sleep() est en millisecondes, donc 30000 est 30 secondes.

4voto

Bron Gondwana Points 1738

3voto

Richard Points 5309

Pourquoi installer un programme (comme AutoIt) alors que Windows peut le faire d'emblée ?

Enregistrez ce qui suit dans un fichier appelé auto_switch.vbs :

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WScript.Sleep 30000
    WshShell.SendKeys("%{TAB}")
Loop

Changez le 30000 pour être le nombre de millisecondes (donc 30000 = 30 secondes) entre les pressions Alt+Tab. Double-cliquez dessus pour le faire fonctionner.

Si vous voulez l'arrêter, vous devez tuer le processus appelé "wscript".

Si vous voulez basculer entre des programmes explicitement nommés, ce code basculera entre "Inbox - Microsoft Outlook" et "Firefox" toutes les 30 secondes :

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WScript.Sleep 30000
    WshShell.AppActivate("Inbox - Microsoft Outlook")
    ' WshShell.SendKeys "% r"
    WScript.Sleep 30000
    WshShell.AppActivate("Firefox")
    ' WshShell.SendKeys "% r"
Loop

Il convient de noter que si les applications de l'exemple ci-dessus sont réduites, elles le resteront même après avoir été activées.

Pour restaurer également la fenêtre, retirez le ' devant le WshShell.SendKeys . Cela rendra le script actif la fenêtre et enverra immédiatement la combinaison de touches de restauration. Alt + SpaceBar , r . Si vous utilisez une version non anglaise de Windows, vous devrez peut-être modifier ce raccourci.

2voto

music2myear Points 38573

S'il n'y a pas d'interaction entre les clients et les écrans/applications, vous pouvez simplement prendre une capture d'écran des programmes et créer un simple diaporama avec une minuterie de 30 secondes et une répétition sans fin.

En général, les entreprises qui utilisent des moniteurs destinés aux clients et qui affichent des programmes à des fins publicitaires n'utilisent pas de programmes "en direct". Vous voulez contrôler l'interface, et laisser le risque qu'une erreur apparaisse n'est pas ce que vous voulez. Elles enregistrent des vidéos d'écran du fonctionnement des programmes, ou font de simples captures d'écran pour un affichage statique.

Sinon, certains tableaux de bord spécifiques sont utilisés pour afficher des informations spécifiques, et ils ne sont généralement pas interchangeables. Ou bien, ils sont commutés à l'aide d'un équipement A/V de sorte que chaque programme fonctionne sur un ordinateur différent afin de minimiser, une fois encore, les risques de panne.

-1voto

Byla Points 1

Ce qui suit vous permet de passer d'un programme à l'autre sans avoir à les nommer. En gros, entrez 1 moins {TAB} que le nombre de fenêtres entre lesquelles vous voulez passer, et n'ayez pas de fenêtres ouvertes superflues.

Fonctionne jusqu'à 6 Windows pour autant que je sache, probablement plus.

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
  WScript.Sleep 1000
  WshShell.SendKeys("%({TAB}{TAB}{TAB}{TAB}{TAB})")
Loop

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X