Ir ao conteúdo
  • Cadastre-se
kassane

RESOLVIDO Execução de comando externo

Recommended Posts

Olá Pessoal, tudo bem?

Estou com uma dúvida em relação ao comando (winexec) no c++:

Eu tentei adicionar uma variável no comando citado, mas dar um erro envolvendo [strings > const char*].

Até aqui: OK :D

WinExec("cmd /c \"help\">>.\\texto.txt", SW_NORMAL);

Mas: ERRO :(

cmd = "cmd /c \"help\">>.\\text.txt";WinExec(cmd, SW_NORMAL);Se dessa forma da erro imagina se eu adicionasse "+ variavel".

Normalmente aprendo a usar pascal/delphi e C/C++, uso IDE embarcadero XE7.1 e gostaria de refazer meu código em c++, mas esse comando me atrapalha. :help:

Caso me perguntam sobre createprocess: Eu ainda não sei usa-lo corretamente sem dar certos erros, por isso comecei no Winexec.

Aguardo sua resposta, desde já agradeço! :aplausos:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei como string.

 

E o erro é este:

[bcc32 Error] Unit1.cpp(23): E2034 Cannot convert 'UnicodeString' to 'const char *'[bcc32 Error] Unit1.cpp(23): E2342 Type mismatch in parameter 'lpCmdLine' (wanted 'const char *', got 'UnicodeString')

C++ builder compiler 6.90 (IDE: Embarcadero XE7.1)!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim

[bcc32 Error] Unit1.cpp(23): E2034 Cannot convert 'wchar_t' to 'const char *'[bcc32 Error] Unit1.cpp(23): E2342 Type mismatch in parameter 'lpCmdLine' (wanted 'const char *', got 'wchar_t *')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja agora:

WinExec(AnsiString(cmd).c_str(), SW_NORMAL);

Nessa versão do compilador que você está usando, String mapeia direto para UnicodeString e a WinExec não suporta Unicode.

 

 

 

[ ]'s

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado ajudou bastante.

 

Avancei um pouco + e funcionou também:

cmd = "cmd /c \"netsh wlan show profile name=" + nome + " key=clear\">>.\\text.txt";WinExec(AnsiString(cmd).c_str(), SW_NORMAL);================================================================================ou em vez de String = cmd; troco por AnsiString = cmd;================================================================================AnsiString = cmd;WinExec(cmd.c_str(), SW_NORMAL);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×