Nun habe ich eine andere Funktion gefunden und die "laden"-Funtion erzetzt.
Nun merkert nur noch NOD32 und VBA32.
Wenn ich die ShellExecute Zeile auskommentiere mekert NOD32 nicht mehr.
Aber ich muss das Programm auch wieder starten, damit die Benutzer es nicht selber tun müssen.
Hier die Funktion, falls jemand es braucht:
Delphi-Quellcode:
function CopyURL(
const URL, OutputFile:
string): Boolean;
const
BufferSize = 2048;
var
hSession, hURL: HInternet;
Buffer:
array[0..Pred(BufferSize)]
of Byte;
BufferLength: DWORD;
f:
file;
m: tmsg;
begin
Result := False;
hSession := InternetOpen('
User', INTERNET_OPEN_TYPE_PRECONFIG,
nil,
nil, 0);
try
hURL := InternetOpenURL(hSession, PChar(
URL),
nil, 0, 0, 0);
try
Assign(f, OutputFile);
Rewrite(f, 1);
repeat
if PeekMessage(M, 0, 0, 0, pm_Remove)
then
begin
TranslateMessage(M);
DispatchMessage(M);
end;
InternetReadFile(hURL, @Buffer, BufferSize, BufferLength);
BlockWrite(f, Buffer, BufferLength);
until BufferLength = 0;
Close(f);
Result := True;
finally
InternetCloseHandle(hURL);
end;
finally
InternetCloseHandle(hSession);
end;
end;
Da bleibt nur deine Exe an die Hersteller zu schicken, damit die ihre Definitionen aktualisieren.
Oder du versuchst es mit
Indy statt UrlDownloadToFile. Aber das wiederum erkennt dann vielleicht z.B. Antivir. Aber einen Versuch wäre es ja wert...
Ich werde mir das mit
Indy anschauen, Danke.