![]() |
hacer que un exe reciba parametros externos
como puedo hacer que un exe reciba parametros externos
esto es que cuando lo llamo me pide escribir el parametro pero quiero que funcione de la siguiente forma myprogram.exe /1 /4,017,16 o myprogram.exe -1 -4,017,16 esto es para pasarle directo los parametros y no utilizar el comando scanf #include <time.h> #include <stdio.h> #include <string.h> #include <windows.h> #include "MyBlasterUtil.h" #define MAX_TOKEN_LEN 128 char blaststr[20000]; void main (int argc, char**argv) { int devNum; char keyName[MAX_TOKEN_LEN]; unsignedchar outstr[1024]; char hexstr[1024]; char charstr[10]; unsignedint i, j; int size; printf("Version 1.0\n"); printf("Type in 1 for code library keys or 0 to learn\n"); scanf("%d", &devNum); if (devNum) { while(1) { printf("UEI type values are:\n0=TV, 1=Cable, 2=Video Accessory, 3=Satellite, 4=VCR, 5=Laser Disk,\n6=DVD, 7=Tuner/Amp, 8=Amp/Misc. Audio, 9=CD, 10=Home Control\n"); printf("There are thousands of UEI code values representing different manufacturers.\nConsult mytvstore.com/support.html for a list of them\n");printf("UEI key values vary by device\n"); printf("As an example, the sequence 4,162,16 represents VCR,Panasonic,POWER.\n"); printf("Input \'ueitype,ueicode,key,key...\'\n"); scanf("%s", keyName); printf("\n"); Emit(keyName); } return; } else { for (j=0; j<3; j++) { printf("press and hold custom key to learn (5 seconds)\n"); if (LearnDeviceKey(&size, outstr, j+1) == 0) { printf("outstr="); hexstr[0] = '\0'; for (i=0; i<(unsignedint)size; i++) { sprintf(charstr, "%.2X", outstr[i]); printf(charstr);strcat(hexstr, charstr); } printf("\n"); } while (1) { printf("type next to record the next key or any other word to output the last learned key\n"); scanf("%s", keyName); if (!stricmp(keyName, "NEXT")) break; EmitLearned(hexstr); } } return; } } Gracias de Antemano Carlosmm |
Joder, que codigo mas viejo.
¿No trabajas con herramientas rad?, ¿No tienes el c++ builder?. El main (arg.....) se usaba en programas MS-DOS, en el cual el bloque central era el main, (actualmente se puede hacer asi, sin embargo) Borland c++ proporciona una clase ya encapsulada para ello, En el el constructor de tu formulario principal. __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { ParamCount(); // numero de paramentros de entrada ParamStr(1); // primer paramentro ParamStr(2).c_str(); //etc ParamStr(2); //etc } |
Gracias por tu ayuda
La verdad No entendi, Tengo Muy poca experiencia en el lenguaje C y no capto la idea que me das te agradeceria infinitamente si me explicaras un poco mas como puedo transformar este programa a una forma mas actualizada o simplemente como hacer el cambio en el programa para que reciba los parametros Gracias Nuevamente PD. estoy estudiando el lenguaje en estos momentos si de favor tienes alguna referencia de donde pueda encontrar un ejemplo de lo que quiero hacer para tener mejor referencia.. Carlos Morales |
Vale que es la sengunda vez que respondo, (espero que no se vuelva a romper la conexion).
La otra vez era un post largo sobre las diferencias entre c y c++. Lenguaje c: Origen de todas las cosas. Lenguaje C++: Basado en lenguaje c pero con metodos de encasulapcion, herecias, etc. ¿Para apender c++ tienes que saber c ?, esa es la gran pregunta. Tu codigo esta en c, yo uso c++ (aunque aprendi programando c). Y ya ta. |
Sin necesidad de cambiar a la plataforma de 32 bits, puedes obtener de la info del prompt del sistema con el argc que te dice cuantos parametros te han enviado y el argv es un vector de cadenas que contiene los paràmetros en el orden en que fueron enviados
|
La franja horaria es GMT +2. Ahora son las 04:23:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi