PDA

Ver la Versión Completa : Asignar parametros al programa


dada
25-06-2006, 19:30:43
Buenas, mi pregunta es la siguiente:
Muchos programas tienen una serie de parametros que permite arrancarlos con unas caracteristicas determinadas, mi pregunta es como conseguir hacer esto en mi programa. Me gustaria que por ejemplo, situandose en la ventana CMD del sistema operativo, arrancar el programa escribiendo:
"miprograma.exe -?" y que muestre un mensaje con una serie de comandos o parámetros en lugar de arrancar el programa al completo.
Lo que quiero decir es para usar en una instruccion como shellexecute, que permita mandarle un parametro( en este caso "-?" ) y que solo muestre la lista de parametros que son accesibles, como lo haria mismamente el ipconfig dentro del CMD de windows XP, escribiendo "ipconfig.exe -?".
Nose si me he explicado bien, espero que lo entiendan y puedan resolver mi problema. Gracias de antemano.

Disculpen si algun post que trate del mismo tema ya está escrito en el foro, pero no lo encontré.

dec
25-06-2006, 19:44:41
Hola,

En el caso de Delphi cuentas con las funciones "ParamCount" y "ParamStr". La primera te devolverá el número de parámetros pasados a tu aplicación. La segunda te ofrece dichos parámetros a partir de un índice, cuyo tope superior será, precisamente, el resultado de la función "ParamCount".

Mira. Echa un vistazo en el menú "Run" de Delphi, añade algunos parámetros a tu aplicación a partir de la opción del menú "Parameters"; en el evento "OnCreate" del formulario principal de tu aplicación puedes escribir lo siguiente para hacerte una idea:


procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
for i := 0 to ParamCount do
begin
ShowMessage( ParamStr(i) );
end;
end;

Lepe
25-06-2006, 19:49:13
La función GetCommandLine te devuelve exactamente los parámetros que se le han dado, puede servirte algo así:


var CommandLine:string;
begin

ComandLine := UpperCase(GetCommandLine);
if pos ('-H', CommandLine)> 0 then
ShowMessge( ' ayuda solicitada');
end;


Saludos

dada
25-06-2006, 19:57:01
Valla, muchas gracias por la rápida respuesta, me ha servido de mucho. Lo he probado y funciona de maravilla. Mira que lo habre visto en montones de códigos pero nunca caí en que eso fuera, muchas gracias