Série da semana: Primeiros passos no React

Veja mais

Winexec não abre com PAnsiChar - Delphi

27/03/2016

5

Pessoal, estou com um problema:
Eu tenho um atualizador que inicia a partir da aplicação principal, mas o atualizador não abre de forma alguma.

var
diretorio: String;
begin
diretorio := (ExtractFilePath(Application.ExeName)+'Atualizador.exe');
WinExec(PAnsiChar(diretorio),SW_SHOWNORMAL);

Quando faço dessa forma ele abre:

var
diretorio: String;
begin
diretorio := (ExtractFilePath(Application.ExeName)+'Atualizador.exe');
Memo1.Text := diretorio;
WinExec(PAnsiChar(diretorio),SW_SHOWNORMAL);
WinExec('D:\OneDrive\Embarcadero\Studio\Projects\Rotinas\Licenca_V2\Licença\Win32\Debug\Atualizador.exe',SW_SHOWNORMAL);

Coloquei esse memo justamente para copiar o código gerado para o último winexec e funcionou.
Copiando também o código do memo para o cmd ele abre normalmente.
Responder

Post mais votado

27/03/2016

teste assim:

diretorio := IncludeTrailingPathDelimiter(ExtractFileDir(Application.ExeName))+'Atualizador.exe';
Responder

Mais Posts

28/03/2016

Tássio Gois

Fiz
diretorio := IncludeTrailingPathDelimiter(ExtractFileDir(Application.ExeName))+'Atualizador.exe';
WinExec(PAnsiChar(diretorio),SW_SHOWNORMAL);

Ainda não funcionou!
Responder

28/03/2016

Tássio Gois

Pessoal consegui com o Shellexecute.
Adicionei a unit shellapi e fiz o seguinte:

procedure TFrmMain.Atualizador2Click(Sender: TObject);
var
diretorio: String;
begin
diretorio := ExtractFilePath(Application.ExeName)+'Atualizador.exe';
ShellExecute(Handle,'open',pchar(diretorio),nil,nil,sw_show)
end;
Responder

07/06/2017

Renato Braz

Maravilha! Resolveu meu problema. Valeu pela dica.
Responder