Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Script pb de focus

11 réponses
Avatar
Yann
Bonjour,
j'ai le script suivant :

script.vbs
-----------------------------------------
set Arg = Wscript.Arguments
Set Shell = WScript.CreateObject("WScript.Shell")
shell.Run "notepad.exe " & Arg(0),1
Playstring "%fe%fq"
Sub PlayString(s)
For i = 1 To len(s)
'le délai de 50 millisecondes s'impose, sinon ça coince!
WScript.Sleep 50
shell.SendKeys Mid(s, i, 1)
Next
End Sub
--------------------
je le lance avec la commande "script.vbs nom du fichier"

il fonctionne bien sauf si un autre programmme se lance en même temps, il
pert le focus donc le script ne fonctionne plus
Il y a t-il une solution ?
Merci d'avance
Yann

10 réponses

1 2
Avatar
~Jean-Marc~ [MVP]
Salutations Yann, tu nous disais :
Bonjour,
j'ai le script suivant :

script.vbs
-----------------------------------------
set Arg = Wscript.Arguments
Set Shell = WScript.CreateObject("WScript.Shell")
shell.Run "notepad.exe " & Arg(0),1
Playstring "%fe%fq"
Sub PlayString(s)
For i = 1 To len(s)
'le délai de 50 millisecondes s'impose, sinon ça coince!
WScript.Sleep 50
shell.SendKeys Mid(s, i, 1)
Next
End Sub
--------------------
je le lance avec la commande "script.vbs nom du fichier"

il fonctionne bien sauf si un autre programmme se lance en même
temps, il pert le focus donc le script ne fonctionne plus
Il y a t-il une solution ?
Merci d'avance
Yann


Un peu bourrin, mais tu peux ajouter un :
Shell.AppActivate "notepad.exe"
Juste avant le SendKeys

http://www.microsoft.com/technet/scriptcenter/guide/sas_wsh_hilv.mspx

@+

~Jean-Marc~ MVP Shell/User Fr
M'écrire : http://msmvps.com/blogs/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/blogs/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/

Avatar
Jean
Shell.AppActivate "notepad.exe"


L'argument title de AppActivate est le titre de la fenêtre (ou le PID
de l'application) pas le nom de l'exécutable ;-)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/2b9476ce-54a7-4a00-b761-25bf9f36e83f.asp

--
Jean - JMST
Belgium

Avatar
Yann
"Jean" a écrit dans le message de news:

Shell.AppActivate "notepad.exe"


L'argument title de AppActivate est le titre de la fenêtre (ou le PID de
l'application) pas le nom de l'exécutable ;-)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/2b9476ce-54a7-4a00-b761-25bf9f36e83f.asp

--
Jean - JMST
Belgium




Merci je vais tester
Yann


Avatar
~Jean-Marc~ [MVP]
Salutations Jean, tu nous disais :
Shell.AppActivate "notepad.exe"


L'argument title de AppActivate est le titre de la fenêtre (ou le PID
de l'application) pas le nom de l'exécutable ;-)

http://msdn.microsoft.com/library/en-us/script56/html/2b9476ce-54a7-4a00-b761-25bf9f36e83f.asp


Yiiiiikssss...... Autant pour moi.
(en plus, je le sais : je l'utilise... :'( )

@+

--
~Jean-Marc~ MVP Shell/User Fr
M'écrire : http://msmvps.com/blogs/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/blogs/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/


Avatar
GIRAUD Alexandre
Bonjour,

Ce n'est pas que je veux tout bousculer, mais il existe un langage script
simple qui gère les focus d'applications. Notamment si tu souhaites faire
des SendKeys.
Il s'apelle AutoIt, actuellement en version 3 et avec un éditeur.
http://www.autoitscript.com/autoit3/

Tu peux vérifier les fênetres ouvertes avec winwaitactive, ou les forcer
avec Winactivate, etc... J'te jure c'est simple et rapide à apprendre comme
langage.

N'hésite pas à me recontacter.

"Jean" a écrit dans le message de news:

Shell.AppActivate "notepad.exe"


L'argument title de AppActivate est le titre de la fenêtre (ou le PID de
l'application) pas le nom de l'exécutable ;-)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/2b9476ce-54a7-4a00-b761-25bf9f36e83f.asp

--
Jean - JMST
Belgium





Avatar
Méta-MCI
Bonsoir !

Et, il existe une version ActiveX d'AutoIt. Cette version n'a pas de GUI,
mais peut être appelée depuis un script en VBS

@-salutations

Michel Claveau
Avatar
~Jean-Marc~ [MVP]
Salutations GIRAUD Alexandre, tu nous disais :
Ce n'est pas que je veux tout bousculer, mais il existe un langage
script simple qui gère les focus d'applications. Notamment si tu
souhaites faire des SendKeys.
Il s'apelle AutoIt, actuellement en version 3 et avec un éditeur.
http://www.autoitscript.com/autoit3/

Tu peux vérifier les fênetres ouvertes avec winwaitactive, ou les
forcer avec Winactivate, etc... J'te jure c'est simple et rapide à
apprendre comme langage.


Pas de problèmes, c'est une possibilité et il m'arrive de l'utiliser pour
faire des installations de programmes qui ne supportent aucun mode
silencieux sur un CD unattended.

@+

--
~Jean-Marc~ MVP Shell/User Fr
M'écrire : http://msmvps.com/blogs/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/blogs/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/

Avatar
Yann
"Jean" a écrit dans le message de news:

Shell.AppActivate "notepad.exe"


L'argument title de AppActivate est le titre de la fenêtre (ou le PID de
l'application) pas le nom de l'exécutable ;-)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/2b9476ce-54a7-4a00-b761-25bf9f36e83f.asp

--
Jean - JMST
Belgium





Bonjour,

Je n'arrive pas à faire fonctionner la fonctionner la fonction "AppActivate
"

Rappel:

A partir d'un batch je lance 40 fois de suite la commande

program.vbs "nom du fichier"

Le programme (program.vbs) doit juste ouvrir le fichier avec notepad et
l'enregistrer mais le problème c'est que si par hasard un autre programme
est ouvert sur le poste le script ne fonctionne plus. Avez vous une
solution a me proposer.



Merci d'avance

Yann


Avatar
Jean
Le programme (program.vbs) doit juste ouvrir le fichier avec notepad et
l'enregistrer


Il y a moyen de faire ça avec AppActivate/SendKeys mais pourquoi ne pas
plutôt utiliser le File System Object pour ouvrir, modifier et
enregistrer le fichier ?

FSO :
http://msdn.microsoft.com/library/en-us/script56/html/8b99eead-e2bd-45c6-9660-bbbfeec192f0.asp

exemples :
http://www.microsoft.com/technet/scriptcenter/scripts/misc/text/default.mspx

note : Les scripts basés sur AppActivate et/ou SendKeys finissent
généralement à la poubelle :-)

Amicalement,

--
Jean - JMST
Belgium

Avatar
Méta-MCI
Bonsoir !

Les scripts basés sur AppActivate et/ou SendKeys finissent généralement
à la poubelle




ça prouve que ça marche ! Avec trashActivate et SendPoubelle ;o)

MCI



1 2