[DELPHI] function para updatear?
Publicado: 12 Dic 2009, 18:07
Estoy programando una app en delphi y quiero hacer un updater, hice esta function:
Lo que se ejecuta es el installer que se encarga de updatear la aplicacion, en mi pc funciona bien, y en un par mas que probe tbm, pero muchas otras no se updatean, y no tengo ninguna RAT ni nada para debuggear en esas pcs q no anda, en todas mis pcs funciono bien.
Podria ser que GetEnvironmentVariable('TEMP') falle en algunas pcs?
Alguien sabe de alguna otra forma segura de hacer esto?
Código: Seleccionar todo
function Update(fileURL:string): boolean;
const
BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
Filename: string;
begin
result := false;
Filename := RandomString(10)+'.exe';
hSession := InternetOpen(PChar('Updater'), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0);
try
AssignFile(f, GetEnvironmentVariable('TEMP')+'/'+FileName);
Rewrite(f,1) ;
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
ShellExecute(webBrowser.HWnd, nil, PChar(GetEnvironmentVariable('TEMP')+'/'+FileName), '/VERYSILENT /SP- /NORESTART', nil, SW_HIDE);
result := True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
Podria ser que GetEnvironmentVariable('TEMP') falle en algunas pcs?
Alguien sabe de alguna otra forma segura de hacer esto?