Prog que executa outro programa

Started by Anonymous, 15 de February , 2006, 06:11:17 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Esse programa para fins de estudo, pede para que você de algumas opções na hora da execução dele, e ele executa determinado programa, mas eu citei as localidades dos bins daqui, ou seja, se alguém for testar em outro local, só com sorte o binario estará na mesmoa localidade que aqui...
Exemplo de uso: ./prog_exec A
ai ele acabaria executando o Amule...

Quote/*Declara as libs*/
#include
#include
#include
#include

/*Declara func principal, a main*/
int main(int argc, char *argv[])
{
   /*Declara os ponteiros que apontam para os binarios do programa, e o nome do programa*/
        char *amule = "/usr/local/bin/amule";
   char *am = "amule";
   char *xmms = "/usr/bin/xmms";
   char *xs = "xmms";
   char *firefox = "/usr/bin/firefox";
   char *ff = "firefox";
   char *anjuta = "/usr/local/bin/anjuta";
   char *aj = "anjuta";
   char *gaim = "/usr/local/bin/gaim";
   char *gm = "gaim";
   char *gkrellm = "/usr/bin/gkrellm";
   char *gk = "gkrellm";
   
   /*Manda umasmensagenzinhas ao alguém executar o prog*/
        fprintf(stderr, "Bem vindo ao openprog, by Morte137\n");
   fprintf(stderr, "[A]Executa o Amule\n");
   fprintf(stderr, "Executa o xmms\n");
   fprintf(stderr, "[C]Executa o Firefox\n");
   fprintf(stderr, "[D]Executa o anjuta\n");
   fprintf(stderr, "[E]Executa o gaim\n");
   fprintf(stderr, "[F]Executa o gkrellm\n");
   fprintf(stderr, "Opção escolhida: %s\n", argv[1]);
   
        /*Vê qual foi a opção escolhida, para poder executar o arquivo*/
   if(strcmp("A", argv[1]) == 0)
   {
      execl(amule, am, NULL, NULL);
      exit(0);
   }
   
   if(strcmp("B", argv[1]) == 0)
   {
      execl(xmms, xs, NULL, NULL);
      exit(0);
   }
   
   if(strcmp("C", argv[1]) == 0)
   {
      execl(firefox, ff, NULL, NULL);
      exit(0);
   }
   
   if(strcmp("D", argv[1]) == 0)
   {
      execl(anjuta, aj, NULL, NULL);
      exit(0);
   }
   
   if(strcmp("E", argv[1]) == 0)
   {
      execl(gaim, gm, NULL, NULL);
      exit(0);
   }
   
   if(strcmp("F", argv[1]) == 0)
   {
      execl(gkrellm, gk, NULL, NULL);
      exit(0);
   }
   
   else
   {
      fprintf(stderr, "PORRA SEU OTÁRIO, EXECUTE A OPÃÇÃO CERTA!!\n");
      exit(1);
   }
   /*Avisa para main, que não precisa retornar nada...*/
   return(0);
}

Shady

pqp quanto ponteiro...


 Tem algum pra Windows? Sim, eu sei, system("start programa"), mas queria saber se tem algum outro jeito...


Mundus Vult Decipi

Anonymous

#2
Quote from: "Shady"pqp quanto ponteiro...


 Tem algum pra Windows? Sim, eu sei, system("start programa"), mas queria saber se tem algum outro jeito...

winexec que eu saiba executa um prog também...
Mas nem sei usa-lo  :-\
Quanto aos ponteiros, claro pow, eles tem que apontar praquelas merdas

EDIT:
Procurei no google, e achei essa coisinha sobre winexec:
http://www.dicasbcb.com.br/Tuto/Inicia_prog.html

Shady

=*

 so preciso ver onde ta o erro... ele diz que nao encontra "shellapi.h"...


Mundus Vult Decipi

Anonymous

eu hein, que tosco cara...
vou ver se acho mais links sobre exec de progs externos no windows, e edito esse post ok?

Shady

E, ja chequei com o apoc, o problema e do meu compilador mesmo... obrigado de qualquer forma ;)


Mundus Vult Decipi

Quicky

r0x kara... o massa de fazer o software, eh  vc pode zuar o karinha  tá usando.. ehOAHOWHOHOAWHOWQOHAHOW

eh mto comedia isso.. pq sai da rotina de "bem vindo usuario".. pq nao um: "Fala gala seka"
ahwoahowqohohawhoq

bem legal kara... to migrando pra outra linguagem de programacao agora.. vou ver oque vou skolher..
Just Me...