WineExec / ShellExecute
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.
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
Curtidas 0
Respostas
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
Quando abrir EXE Compras, ele deverá carregar tal arquivo e realizar a leitura.
Simples
GOSTEI 0
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.
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