Ir ao conteúdo

Duvida Iniciante visual C


denysmello

Posts recomendados

Postado

Achei isto:

#include <windows.h>

int main()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( π, sizeof(pi) );

if(!CreateProcess( NULL, // No module name (use command line)
"ola.exe", // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
π ))
{
MessageBox(NULL, "Fail", "", MB_OK);
}
WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );

return 0;
}

Postado
usando o visual studio não dá...

talvez com o dev possa dar..

Acho que tem um mal intendido por aqui :huh:

Esse código é perfeito e funciona usando o Visual Studio...

Basta ser um projeto do tipo C/C++ e código nativo, não gerenciado ^_^

Acredito que Process.Start() seja código gerenciado e você esteja usando o .NET, sendo assim ele gera erros ao incluir a Windows.h :lol:

Postado

Bom, vou explicar melhor meu problema.

Process.Start() chama meu programa de instalação porém quando este programa entra em execução ele reporta o seguinte erro:

redf.png

bom e o mesmo não ocorre quando executo o programa manualmente.

Postado
Bom, vou explicar melhor meu problema.

Process.Start() chama meu programa de instalação porém quando este programa entra em execução ele reporta o seguinte erro:

redf.png

bom e o mesmo não ocorre quando executo o programa manualmente.

Bom, se você consegue abrí-lo manualmente isso pode funcionar:

//main.cpp
#include <iostream>

int main()
{
system("UmInstalador.msi"); // também pode ser .exe .txt, qualquer tipo...
return 0;
}

system() é o mesmo que você usar o CMD... o que você digita como string é passado como se fosse digitar no CMD e dar um enter

O arquivo deve estar na mesma pasta do main.cpp e também na mesma pasta do executável gerado, senão ele não o encontrará

Se isso ainda não funcionar mostre o código que está usando e também uma imagem da pasta do seu projeto onde estão os arquivos .cpp e/ou .h .hpp .c e também a pasta do /DEBUG ou /RELEASE para nós vermos melhor o que está acontecendo :D

Postado

Bom acho que esqueci de mensionar um detalhe, estou usando o modo visual.

lolhqh.png

bom tenho essa duvida pois estou começando agora, e é somente um hobbie. uahush

gosto de programação, porém não fiz nenhum curso ainda. =/

  • Membro VIP
Postado

O título do tópico informa que é Visual C. Fez a galera perder tempo...

Sua dúvida é sobre C# .NET e deveria ter sido postada no fórum .Net.

Quando algum moderador mover este tópico pra lá, acredito que terá seu problema resolvido mais rapidamente.

Abraço. o/

Postado

http://www.linhadecodigo.com.br/artigo/1587/Chamando-uma-aplica%C3%A7%C3%A3o-externa-a-partir-do-Windows-Forms.aspx

Neste link tem explicações sobre o Process.Start()

Antes que este tópico seja movido... Process.Start() é uma função que chama aplicativos externos a partir de um Form, isso você já sabe, porém os aplicativos chamados tem de estar localizados num lugar especial, ou no root do Sistema, como é o caso da calculadora do Windows ou num "resource" que você pode fazer, não sei se estou certo, porque não sei brincar de C# :D, mas com um resource você chamaria seu instalador facilmente

Em último caso, que acho mais fácil, seria você chamar o aplicativo enviando um comando para o Shel do Windows, que abriria o aplicativo sem nenhuma dificuldade, em C/C++ seria System("nomedoaplicativo.exe"); em C# eu já na sei :wacko:

Postado

pooois é... este recurso system() eu conhecia... mas o equivalente para c# não faço nem ideia.

o Problema do start()r é que ele parece rodar dentro do forms.

vou procurar saber mais sobre ele. Obrigado

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!