Envoyer une clé à la ligne cmd

la programmation


Salut tout le monde
J’exécute un fichier batch qui exécute plusieurs fois la même application avec des paramètres variables
entre chaque exécution, il faut appuyer sur n’importe quelle touche
Comment puis-je imiter la barre d’espace frappée dans la ligne cmd ?

le fichier batch ressemble à ceci :

c :
cd “C:\Mon application”
“C:\MonApp\MonApp.exe” “1”
“C:\MonApp\MonApp.exe” “5”
“C:\MonApp\MonApp.exe” “0”

entre le “C:\MyApp\MyApp.exe” “1” et le “C:\MyApp\MyApp.exe” “5”
la ligne cmd attend toute pression sur une touche de la part de l’utilisateur.
donc je veux écrire cette touche dans la ligne cmd
quelque chose comme :

c :
cd “C:\Mon application”
“C:\MonApp\MonApp.exe” “1”
“PressKey” {“Espace”}
“C:\MonApp\MonApp.exe” “5”
“PressKey” {“Espace”}
“C:\MonApp\MonApp.exe” “0”

Merci!

dj4400

Ce que j’ai essayé :

Le googler
Commande SendKeys, peut-être que je l’ai mal utilisée ?

Solution 1

Vous ne pouvez pas envoyer de clé à l’application après l’avoir démarrée à partir de la ligne de commande : l’exécution de vos commandes (ou de votre fichier batch) n’a lieu que lorsque l’application que vous avez exécutée est fermée.

Cependant, vous pourrez peut-être utiliser le pipeline pour envoyer une clé à l’application : à propos des pipelines – PowerShell | Microsoft Apprendre[^]

Une meilleure façon s’il s’agit de votre application, comme votre exemple semble le montrer, serait d’ajouter un commutateur de ligne de commande à votre application qui la ferait fonctionner “sans surveillance” – une variable globale est définie au démarrage de l’application et vérifiée chaque fois que votre application souhaite une saisie utilisateur. .

Solution 3

Comme Griff l’a dit, si vous avez écrit l’application console, votre meilleur choix est de la modifier afin qu’elle ne demande pas de saisie.

Si ce n’est pas quelque chose que vous pouvez changer, alors peut-être qu’il y a déjà quelque chose comme ça. Vous devriez enquêter davantage.

À défaut, vous pouvez écrire une application console qui exécute l’application via un processus, détecte l’invite et y répond. Cela ne fonctionne pas toujours, mais vous pouvez essayer.

J’ai fait ce genre de chose : Processus Communicateur[^]

Solution 2

Salut, mon intention est “d’appuyer” sur la touche une fois l’exécution de mon application terminée.

“C:\MonApp\MonApp.exe” “1”
mon application se termine et puis :
“PressKey” {“Espace”}

merci!

コメント

タイトルとURLをコピーしました