Fórum Erro ao executar shellExecute Windows #585834

14/09/2017

0

Pessoal estou com a missão de unir dois ou mais pdf's em um so. Não encontrei forma de fazer isso nativamente no delphi portanto estou utilizando um problema chamado pdftk , ele é bem simples.

Ex:
 pdftk arquivo1.pdf arquivo2.pdf output arquivomerge.pdf 


Porém os parametros tem que vir da minha aplicação , portante quando executo o comando shellExecute ele trava 'pdfk parou de funcinoar'.


Comando que executa o shellexecute.

 function ShellExecute_AndWait(FileName: string; Params: string): bool;
  var
    exInfo: TShellExecuteInfo;
    Ph: DWORD;
  begin

    FillChar(exInfo, SizeOf(exInfo), 0);
    with exInfo do
    begin
      cbSize := SizeOf(exInfo);
      fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
      Wnd := GetActiveWindow();
      exInfo.lpVerb := 'open';
      exInfo.lpParameters := PChar(Params);
      lpFile := PChar(FileName);
      nShow := SW_SHOWMINNOACTIVE;
    end;
    if ShellExecuteEx(@exInfo) then
      Ph := exInfo.hProcess
    else
    begin
      ShowMessage(SysErrorMessage(GetLastError));
      Result := true;
      exit;
    end;
    while WaitForSingleObject(exInfo.hProcess, 50) <> WAIT_OBJECT_0 do
      Application.ProcessMessages;
    CloseHandle(Ph);
    Result := true;
  end;
Jean Teixeira

Jean Teixeira

Responder

Posts

14/09/2017

Interativa Sistemas

Amigo, veja se isto te ajuda.
Tente utilizar o comando ShellExecute assim:
ShellExecute(Handle, 'open', PWideChar('"' + COMANDO_A_SER_EXECUTADO_NO_CMD + '"'), nil, nil, SW_SHOWMAXIMIZED);
uses Winapi.ShellApi;
Responder

Gostei + 0

14/09/2017

Jean Teixeira

Testei aqui ele ate executa esta linha porém não tem o resultado esperado, ele não gera o arquivo de output. Alguém sabe o porque disso esta acontecendo.
Responder

Gostei + 0

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

Aceitar