Fórum Variaveis.....???? #280593

07/05/2005

0

Bom...meu problema é o seguinte.....eu programo em php e estou desenvolvendo um programa pra geração de etiquetas on-line....hehehe...só eu mesmo..........bom.....é o seguinte.........quando eu chamo um programa no executar do windows.....o internet explorer por exemplo.....eu faço assim.....

iexplore [b:92c3daaf64]http://www.google.com.br[/b:92c3daaf64]....ai abre o navegador indo direto pra página do google.......ai esta meu problema......eu queria chamar um programa em delphi.......desse mesmo modo....no executar......mais ou menos assim....

[b:92c3daaf64]meuprograma.exe VARIAVEL_1[/b:92c3daaf64]..........agora.....como eu faço pra ele reconhecer essa variavel_1.....dentro do programa........

se alguém souber.....por favor...........

Vlw...... =) ......


Andrecg

Andrecg

Responder

Posts

07/05/2005

Michael

Olá amigo!

O Delphi dispõe as funções [b:05917fbad3]ParamStr [/b:05917fbad3]e [b:05917fbad3]ParamCount[/b:05917fbad3], que manipulam os parâmetros passados via linha de comando, que é o q vc quer. ParamStr deve receber o índice do parâmetro da linha. Veja o exemplo:

[b:05917fbad3]programa.exe[/b:05917fbad3] [color=red:05917fbad3]http://www.clubedelphi.net [/color:05917fbad3][color=blue:05917fbad3]http://www.devmedia.com.br[/color:05917fbad3]

O primeiro parâmetro, http://www.clubedelphi.net é acessado por [b:05917fbad3]ParamStr(1). [/b:05917fbad3]O segundo, http://www.devmedia.com.br, [b:05917fbad3]ParamStr(2)[/b:05917fbad3].

Já [b:05917fbad3]ParamCount [/b:05917fbad3]retorna o total de parâmetros passados via linha de comando. Vc deve usá-la para saber se foi passado algum, pois se vc usar ParamStr com um índice inexistente, será gerada uma exceção em run-time.

Ah, [b:05917fbad3]ParamStr(0)[/b:05917fbad3] retorna o caminho completo do aplicativo, por exemplo, C:\programa.exe. Produz o mesmo efeito de Application.ExeName.

Veja um exemplo de como obter todos os parâmetros passados:

function ObterParametrosLinhaComando : TStringList;
var
  I : integer;
begin

  if ParamCount = 0 then
    exit;

  Result := TStringList.Create;

  for I := 1 to ParamCount do
    Result.Add(ParamStr(I));
end;


Use assim:

var
  Parametros : TStringList;
  I : integer;
begin
  Parametros := ObterParametrosLinhaComando;

  if Parametros = nil then
    { Nenhum parâmetro passado }
  else
    for I := 0 to Parametros.Count - 1 do
      ShowMessage(Parametros[I]);

end;


Entendido? ;-)

Abraços!


Responder

Gostei + 0

07/05/2005

Yallebr

Pessoal,


Aproveitando a dica que foi muito útil. Agora que a aplicação le um parametro tem como eu retornar um valor?

Por exemplo. Eu executo meu programa com parametro 1 e o executavel me retorna um resultado?

Isso é pelo fator q algumas empresas de gerar serial americana exigem que seu software retorne o valor do registro e possa ser chamada apenas com parametro.

Assim, passo ´Yalle Cunha´. e a aplicação me retorna ´RRRRR´ isso sem precisar abrir um formulario, pelo próprio exe.

Abraços


Responder

Gostei + 0

07/05/2005

Beppe

Dá pra usar STD_OUT(console), o programa que chamou lê de lá, só redireciona, com pipes, tem exemplos no fórum.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar