我們有這個應用程序不寫入Windows註冊表或將其配置文件(例如INI文件)存儲在用戶的配置文件中;相反,它將其配置文件存儲在程序的目錄中。維基百科有這樣的說法在Windows和Delphi中實現應用程序可移植性?
便攜式應用程序(便攜式應用程序)是一種計算機軟件程序,旨在獨立於操作系統運行。此類應用程序存儲在可移動存儲設備上,如CD,USB閃存驅動器,閃存卡 - 將其程序文件,配置信息和數據存儲在存儲介質上。
所以我們的問題是,這是否使我們的應用程序成爲一個真正的便攜式應用程序(便攜式應用程序)?
我應該指出,如果應用程序在寫保護介質上,我們使用下面的函數,所以它不會嘗試寫入該介質。
function GetTempFile(): string;
var
Buffer: array[0..MAX_PATH] of Char;
begin
Windows.ZeroMemory(@Buffer, System.SizeOf(Buffer));
SysUtils.StrPCopy(Buffer, SysUtils.ExcludeTrailingBackslash(SysUtils.ExtractFilePath(System.ParamStr(0))));
Windows.GetTempFileName(Buffer, '~', 0, Buffer);
Result := string(Buffer);
end;
function IsMediumWriteProtected(): Boolean;
var
ErrorMode: Word;
hHandle: THandle;
begin
ErrorMode := Windows.SetErrorMode(SEM_FAILCRITICALERRORS);
try
hHandle := Windows.CreateFile(PChar(GetTempFile()), GENERIC_WRITE, 0, nil,
CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY or FILE_FLAG_DELETE_ON_CLOSE, 0);
try
Result := (hHandle = INVALID_HANDLE_VALUE);
finally
Windows.CloseHandle(hHandle);
end;
finally
Windows.SetErrorMode(ErrorMode);
end;
end;
沒有去。 'DrWeb \t 5.0.2.03300 \t 2011.07.16 \t Trojan.MulDrop.35563' –
是什麼意思評論? –
@downvoter不確定你的意思,沒有病毒!其他人是否知道這傢伙說的? – eyeClaxton