Fórum WineExec / ShellExecute #590849

25/01/2018

0

Boa tarde,

Tenho uma Executável chamado de Conferência Sintegra, onde abro outro executável chamado Compras
gostaria de informar o numero da Nota Fiscal assim quando eu abrir o executável de Compras ele com a Nota Fiscal informada pelo Conferência Sintegra.
Wanderson Salles

Wanderson Salles

Responder

Posts

25/01/2018

Raimundo Pereira

Conferência Sintegra >> Gera um arquivo XML ou TXT ..., dentro deste arquivo conterá o número da nota fiscal.
Quando abrir EXE Compras, ele deverá carregar tal arquivo e realizar a leitura.

Simples
Responder

Gostei + 0

25/01/2018

Jerson Boer

Boa tarde Wanderson, tente o seguinte.

No Conferência Sintegra, quando você for chamar o executável compras, você pode passar a informação como parâmetro, exemplo:

ShellExecute(HANDLE_FLAG_INHERIT, nil, 'Compras.exe', PCHAR(NumeroDaNota), nil, SW_SHOWNORMAL);

No código da aplicação Compras.exe, você vai pelo projeto do Delphi e abre o source do projeto, que é mais ou menos assim:

program Compras;

uses
Winapi.Windows,
Vcl.Forms,
unitCompras in 'unitCompras.pas' ;

{$R *.res}

begin
if ParamStr(1) = '' then
begin
Application.MessageBox('Este aplicativo deve ser executado' + #13#10 +
'através do Sintegra', 'Restrição de Acesso', MB_OK + MB_ICONWARNING);
end
else
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TfrmCompras, frmCompras);
frmCompras.ParametroNota := ParamStr(1);
Application.Run;
end;
end.

Ou seja, se executar ele por fora, não irá funcionar por não ter passado o parâmetro, agora se vier através do Sintegra abrirá normalmente a aplicação, salvando o número da nota em um parâmetro público declarado no formulário principal.
Responder

Gostei + 0

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

Aceitar