WineExec / ShellExecute

Delphi

25/01/2018

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

Curtidas 0

Respostas

Raimundo Pereira

Raimundo Pereira

25/01/2018

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
GOSTEI 0
Jerson Boer

Jerson Boer

25/01/2018

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.
GOSTEI 0
POSTAR