アプリケーション互換性ツールキットの「StandardUserAnalyzer」を使用して説明しましたが、次の理由でアプリがUAC互換ではないと報告されました。
「DeleteFileA:ファイル(\ Device \ HarddiskVolume1 \ Documents and Settings \ Administrator \ Local Settings \ Temp \ mtgstudio.madExcept)は、エラー0x5で「DELETE」アクセスを拒否されました。」
「DeleteFileA:ファイル(\ Device \ HarddiskVolume1 \ Documents and Settings \ Administrator \ Local Settings \ Temp)は、エラー0x5で「DELETE」アクセスを拒否されました。」
私が見つけたmadExcept.pasファイルをチェックします:
function GetTempPath : AnsiString;
var arrCh : array [0..MAX_PATH] of AnsiChar;
begin
if windows.GetTempPathA(MAX_PATH, arrCh) > 0 then begin
result := arrCh;
if result <> '' then begin
CreateDirectoryA(PAnsiChar(result), nil);
if result[Length(result)] <> '\' then
result := result + '\';
result := result + KillExt(ExtractFileName(ModuleName(0))) + '.madExcept';
CreateDirectoryA(PAnsiChar(result), nil);
result := result + '\';
end;
end else
result := '';
end;
madExceptの動作を上書きし、UACで許可された場所に一時ファイルを保存する良い方法はありますか?