none
Erro a executar comando com a função system() RRS feed

  • Pergunta

  • Pessoal,

    Estou tentando executar o seguinte comando para desinstalar um software, o código fonte está assim:

    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <stdlib.h>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    	char mess[] = "\"C:\\PROGRA~2\\Pasta1\\AUTOUP~1\\UninstallApp.exe\" {56D68699-5DDF-4376-85B2-05B3C268D743} "; 
    	
    	char mess1[] =  "\"C:\\Windows\\TEMP\\{34D596F3-A716-4A73-98A9-AC65AD2E8DE4}\\{56D68699-5DDF-4376-85B2-05B3C268D743}Uninstall.log\"";
    
    	
    	strcat(mess,mess1);
    	
    	printf("%s\n",mess);
    	
    	system(mess);
    	
    	system("pause");
    	return 0;
    }

    A montagem está correta pois se pegar a saída ali do printf e colar diretamente no terminal ele executa, já tentei com rodar o .exe com permissão de administrador ou chamando do terminal e o retorno é o mesmo:

    "C:\PROGRA~2\Pasta1\AUTOUP~1\UninstallApp.exe" {56D68699-5DDF-4376-85B2-05B3C268D743}Uninstall "C:\Windows\TEMP\{34D596F3-A716-4A73-98A9-AC65AD2E8DE4}\{56D68699-5DDF-4376-85B2-05B3C268D743}Uninstall.log"
    A sintaxe do nome do arquivo, do nome do diretório ou do rótulo do volume está incorreta.
    Pressione qualquer tecla para continuar. . .

    Alguma ideia do motivo que ocorre este erro?

    quinta-feira, 5 de setembro de 2013 20:05