Winexec não abre com PAnsiChar - Delphi
27/03/2016
0
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.
Tássio Gois
Post mais votado
27/03/2016
diretorio := IncludeTrailingPathDelimiter(ExtractFileDir(Application.ExeName))+'Atualizador.exe';
Emerson Nascimento
Mais Posts
28/03/2016
Tássio Gois
diretorio := IncludeTrailingPathDelimiter(ExtractFileDir(Application.ExeName))+'Atualizador.exe';
WinExec(PAnsiChar(diretorio),SW_SHOWNORMAL);
Ainda não funcionou!
28/03/2016
Tássio Gois
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;
23/02/2022
Vicente Santos
Clique aqui para fazer login e interagir na Comunidade :)