2016-12-22 2 views
-4

c'est une question amusante, je veux écrire un programme A, A alors exécuter un autre programme B, B peut-être un programme de connexion, donc il a besoin de lire le compte et le mot de passe ne peut pas passer ces entrées en exécutant B en passant certains augmentations/option; alors comment le faire avec C/C++? quand sur la plate-forme Windows, il peut utiliser un script vbs WshShell.SendKeys "cd /data/yangzhen/src/tdsql_proxy/proxy" WshShell.SendKeys "{ENTER}" WScript.Sleep 500 et peut utiliser un findWindow utiliser une API Windows, mais sur la plate-forme Linux, pouvons-nous le faire utiliser C/C++ ?, Je sais que cela peut être fait, tout comme le tuyau dans la coquille , mais comment utiliser C/C++exécuter un autre programme, puis entrer automatique

+0

Pourquoi il ne peut pas y avoir un seul _programme? _ Pourquoi cela ne peut pas être une fonction séparée? –

+0

Dépend du framework que vous utilisez. Peut-être dupliquer de http://stackoverflow.com/questions/13736990/change-iostreams-in-child-process – Swift

+0

https://en.wikipedia.org/wiki/Inter-process_communication – Yves

Répondre

0

Ceci est par nature non sûr, mais vous pouvez exécuter B grâce à un peu de script qui peut automatiser l'authentification. Ou bien utilisez ssh avec authorized_keys correctement configuré pour le faire au mieux.

+0

en fait, ce que je veux dire est d'utiliser un processus pour remplir l'entrée d'un autre processus, comme mot de passe , bien sûr, cela nécessite un super privilège, alors puis-je écrire un programme pilote Windows pour le faire? – user3054879