[tutorial] executando outro programa

Postagem de conteúdo sobre programação C, C++ e C#
Post Reply
User avatar
Kodo no Kami
Admin
Admin
Posts: 723
Joined: Fri Jan 02, 2015 1:56 pm
Contact:

[tutorial] executando outro programa

Post by Kodo no Kami » Tue Nov 03, 2015 10:36 pm

bom galera as vezes e necessario abrir outro programa atraves do nosso programa em c, para isso existe varios meios que pode depender do sistema operacional, um exemplo facil e usar o system da biblioteca stdlib.h e passar como argumento o local do arquivo (vou abrir a calculadora do windows que fica c:\windows\system32\calc.exe)

Code: Select all

#include <stdlib.h>

int main(void)
{
    system("c:\\windows\\system32\\calc.exe");
}
o exemplo anterior e como se a gente tivesse aberto o prompt e executado o programa por ele, a gente tambem pode colocar um start antes do local do arquivo assim nao ficaria esperando ele ser finalizado

Code: Select all

#include <stdlib.h>

int main(void)
{
    system("start c:\\windows\\system32\\calc.exe");
}
outra maneira e usar as API do sistema windows para executar, uma api bem usado e WinExec porem essa api nao tem nos sistemas mais novos, para usar ela basta passar como argumento o local e depois o comando caso tenha, para a gente usar ele tem que declarar windows.h tambem

Code: Select all

#include <windows.h>

int main(void)
{
    WinExec("start c:\\windows\\system32\\calc.exe",0);
}
outro api do sistema windows e ShellExecute, essa api a gente vai passar como argumento 0 (aqui seria a janela), no segundo argumento e "open" (aqui a açao por exemplo abrir explorar etc), no terceiro argumento e o local do arquivo, no quarto argumento seria o comando que a gente passa como paramentro caso nao tenha coloque um 0 ou NULL, no quinto argumento eu nao faço ideia '-' (coloque um 0 tambem), e o ultimo argumento colocamos como a janale vai aparecer (minimizada, maximimizada, oculta etc), nessa api tambem tem que declarar windows.h

Code: Select all

#include <windows.h>

int main(void)
{
    ShellExecute(0,"open","c:\\windows\\system32\\calc.exe",0,0,SW_NORMAL);
}
para terminar agora vamos ver outro metodo que e o CreateProcess que tambem fica na biblioteca windows.h, nesse a gente vai ter que fazer um pouco mais coisas que o anterior, para começar temos que declarar duas estruturas STARTUPINFO e PROCESS_INFORMATION, depois usamos a funçao CreateProcess e passamos como argumento o local do arquivo, o comando de paramentro, mais 3 argumentos qur a gente vai colocar 0 nos 3 (nao vou me aprofundar muito nisso), o proximo seria como a thread vai iniciar (pausada etc, coloque 0 aqui tambem lol ), depois nos dois dois proximo argumento 0 '-',  para terminar a gente passa o endereço de memoria da estrutura STARTUPINFO e no proximo argumento o do PROCESS_INFORMATION e pronto u.u

Code: Select all

#include <windows.h>

int main(void)
{
    STARTUPINFO si = {0};
    PROCESS_INFORMATION pi = {0};

    CreateProcess("c:\\windows\\system32\\calc.exe",0,0,0,0,0,0,0,&si,&pi);
}
o exemplo anterior tem 7 zero entre o local e a primeira estrutura '-'

by kodo no kami
Image

que desagradavel ~ mirai kuriyama

Post Reply

Return to “C / C++ / C#”