Abrir programa com parâmetros
Como faço para abrir um programa com parâmetros no atalho?
Por exemplo, a opção [b:476f5d2c54]/a[/b:476f5d2c54], mostra o form A, a opção [b:476f5d2c54]/b[/b:476f5d2c54], mostra o form B, etc.
Por exemplo, a opção [b:476f5d2c54]/a[/b:476f5d2c54], mostra o form A, a opção [b:476f5d2c54]/b[/b:476f5d2c54], mostra o form B, etc.
Fmd
Curtidas 0
Respostas
Xanatos
12/09/2004
Ao iniciar teu programa consulte ParamStr(1) esse numero entre parenteses indica a posicao da string.
Tipo Programa /a /b:
ParamStr(1) = ´/a´ e ParamStr(2) = ´/b´
if ParamStr(1)<>´/a´ then
FormA.ShowModal
else if ParamStr(1)<>´/b´ then
FormB.ShowModal
Espero q ajude!!!
Tipo Programa /a /b:
ParamStr(1) = ´/a´ e ParamStr(2) = ´/b´
if ParamStr(1)<>´/a´ then
FormA.ShowModal
else if ParamStr(1)<>´/b´ then
FormB.ShowModal
Espero q ajude!!!
GOSTEI 0
Afarias
12/09/2004
Além disso vc pode usar a função [b:560aca54c9]ParamCount[/b:560aca54c9] para determinar quantos argumentos foram passados para o executável, ou ainda usar a função [b:560aca54c9]FindCmdLineSwitch[/b:560aca54c9] para saber se determinado parâmetro foi utilizado, ex:
if FindCmdLineSwitch(´a´, [´-´, ´/´], True) then
begin
{ faça algo }
end;
no caso acima, vai retornar TRUE caso exista em qualquer posição (nos argumentos de execução) ´-a´ ou ´/a´ (sem aspas, claro!)
T+
if FindCmdLineSwitch(´a´, [´-´, ´/´], True) then
begin
{ faça algo }
end;
no caso acima, vai retornar TRUE caso exista em qualquer posição (nos argumentos de execução) ´-a´ ou ´/a´ (sem aspas, claro!)
T+
GOSTEI 0
Tatuweb
12/09/2004
Só uma observação:
A função ParamStr, pelo menos até a versão 5 do Delphi/C++ Builder, possui um bug. Ela não funciona corretamente se o path tiver espaços. Ex: C:\arquivos de programas\ tem dois espaços. Prefira usar a API GetCommandLine em conjunto com Copy, AnsiPos e ParamCount. É bem simples. Se alguém usa o programa XnView (visualizador de imagens) já deve ter reparado esse programa tem este bug.
A função ParamStr, pelo menos até a versão 5 do Delphi/C++ Builder, possui um bug. Ela não funciona corretamente se o path tiver espaços. Ex: C:\arquivos de programas\ tem dois espaços. Prefira usar a API GetCommandLine em conjunto com Copy, AnsiPos e ParamCount. É bem simples. Se alguém usa o programa XnView (visualizador de imagens) já deve ter reparado esse programa tem este bug.
GOSTEI 0
Paulo_amorim
12/09/2004
Só uma observação:
A função ParamStr, pelo menos até a versão 5 do Delphi/C++ Builder, possui um bug. Ela não funciona corretamente se o path tiver espaços. Ex: C:\arquivos de programas\ tem dois espaços. Prefira usar a API GetCommandLine em conjunto com Copy, AnsiPos e ParamCount. É bem simples. Se alguém usa o programa XnView (visualizador de imagens) já deve ter reparado esse programa tem este bug.
Olá
Ele funciona se vc passar com aspas, daí ele interpreta como um parâmetro...
Description
ParamStr returns the parameter from the command line that corresponds to Index, or an empty string if Index is greater than ParamCount. For example, an Index value of 2 returns the second command-line parameter.
ParamStr(0) returns the path and file name of the executing program (for example, C:\TEST\MYPROG.EXE).
[b:c38e28ca13]Note:Use double quotes to wrap multiple words as one parameter (such as long file names containing spaces)[/b:c38e28ca13]
GOSTEI 0
Tatuweb
12/09/2004
Ele funciona se vc passar com aspas, daí ele interpreta como um parâmetro...
Como assim passar com aspas? Só como exemplo faça um programinha para ler arquivos texto, associe a extensão TXT ao seu programa e tente abrir um arquivo dentro de um path que tenha espaço. Se tentar fazer o que tá abaixo vai retornar um erro caso o path contenha espaço.
procedure TForm1.FormShow(Sender: TObject); begin if ParamStr (1) <> ´´ then Memo1.Lines.LoadFromFile (ParamStr (1)); end;
GOSTEI 0
Keitarosan
12/09/2004
o que o Paulo Amorim falou está certo, uso Delphi5 e sempre utilizei o ParamStr e ParamCount, tenho programas que associam os arquivos e não dá problema algum, tenha espaço no meio do nome ou não...
Quando for associar um arquivo a um programa, a maneira mais coerente é fazer assim: ´ ´ ´¬1´ :D
Quando for associar um arquivo a um programa, a maneira mais coerente é fazer assim: ´ ´ ´¬1´ :D
GOSTEI 0
Tatuweb
12/09/2004
Quando for associar um arquivo a um programa, a maneira mais coerente é fazer assim: ´ ´ ´¬1´ :D
Ah tá... agora entendi o lance. Entre aspas já estava mas faltou incluir o ´¬1´ na associação. Testei agora e funciounou. :P
GOSTEI 0