管理者権限を必要としない Delphi 7 で書かれたアプリケーションがあります。
何らかの理由で、アプリケーションが UAC 昇格を要求していなくても、アプリケーション内から c:\windows および c:\windows\system32 にファイルを保存できます。UAC をオンにして管理者としてログインしていますが、デフォルトの UAC 設定を変更していません。ファイルは、実際には Windows エクスプローラーにも表示されます。「管理者として実行」オプションを使用していません。
同じプロファイルでワードパッドを使用して同じことをしようとすると、予想どおりエラーが発生します。
何が起こっているのですか?
このアプリケーションは、Ole 構造化ストレージを使用して保存し、次のマニフェストを含めます (役立つ場合)。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="DelphiApplication" version="1.0.0.0" processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
編集:明確にするために、私のアプリケーションはデフォルトでこれらの場所に何も保存しません。標準のファイル保存ダイアログでこれらの場所を選択しています。
アップデート
上記のマニフェストが含まれているにもかかわらず、アプリケーションがレガシーとして扱われている理由がわかりました。「trustInfo」セクションを持たない 2 番目のマニフェストも含まれていたことが判明しました。この 2 番目のマニフェストを削除しました。
助けてくれてありがとう