tente d'écrire sur un canal inexistant
Bonjour à tous,
Je tente de copier le chemin d'un fichier dans le presse papier via le dossier sendto.
La copie s'effectue grâce à clip.exe de Vista. Or j'obtien: 'Le processus a tenté d'écrire sur un canal inexistant.' et la console demeure en suspend.
Si je commente popen:
sans popen:
_forwSlash C:\ee$ ert\\\\wer t/$456.tst
donne @echo "C:/ee$ ert////wer t/$456.t" | clip.exe
qui copié-collé , donne "C:/ee$ ert////wer t/$456.t"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
int main(int argc, char *argv[])
{
int i, j, k, c;
FILE *fp;
char eko[64] = "cmd /k @echo \"";
char clip[15] = "\" | clip.exe";
for (i=1 ;i<argc ;i++)
{
while (argv[i][k] != '0')
{
k++;
}
for (j=0; j<k ;j++)
{
if (argv[i][j] == '\\')
argv[i][j] = '/';
}
k=0;
strcat(eko, argv[i]);
if(i < argc-1)
strcat(eko, " ");
}
strcat(eko, clip);
printf("-- %s\n", eko);
if ((fp = _popen(eko, "rt"))== NULL){
exit(1);
}else{
while((c= getc(fp)) != EOF){
putc(c, stderr);
}
_pclose(fp);
}
return 0;
} |
Merci de votre attention,
JPDaviau