[c++] passer une suite de commandes à un .exe

Résolu
hugues_popovitch Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
hugues_popovitch Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je cherche à automatiser la création de signatures numériques en utilisant GnuPG. J'écris donc un programme c++ qui appelle l'exécutable de GPG par la fonction CreateProcess() :



#include <stdio.h>
#include <windows.h>

int main(int argc, char *argv[])
{
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
CHAR command[] = ".\\gpg\\gpg.exe --homedir .\\gpg --output .\\doc.sig --detach-sig
.\\doc.txt";

if(!CreateProcess(0, command, 0, 0, FALSE, 0, 0, 0, &si, &pi))
{
return 0; // error on launching GnuPG
}

WaitForSingleObject(pi.hProcess, INFINITE); // wait until GnuPG has finished his work

CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);

return 1;
}



GnuPG est ainsi lancé dans une console, avec directement la commande de créer une signature pour le fichier doc.txt (que je remplacerai plus tard par l'argument de mon programme).
Cependant il reste une ligne de commande à entrer : c'est un mot de passe.
Or je ne sais pas comment écrire dans mon programme que je souhaite passer une nouvelle ligne de commande à l'exécutable déjà lancé. J'ai cherché sans succès sur Internet.

Quelqu'un saurait-il comment faire ?

Merci d'avance.
A voir également:

3 réponses

mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   6
 
Je sais que pour envoyer des commande a GNUplot j'ai utilser les" pipes" en C.
Mais je sais pas si c'est possible avec GNUpg que je ne connais pas.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
le mot de passe est saisi en ligne de commande depuis l'entrée standard.
tu peux rediriger cette entrée avec < ou | Mais pas pour tout les types de programme. Par exemple telnet ne suporte pas ce type d'indirection.Gnupg, si c'est un prog GNU, tu doit avoir les source.
Tu peux peut être inclure toutes les source dans ton programme ou tout simplement bidouiller les sources (c'est bien le open source !)
0
hugues_popovitch Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de vos réponses, je vais m'atteler à ces histoires de "pipes" aujourd'hui.
0