Windows 7で動作するVB6アプリケーション用のマニフェストファイルを作成しました(ビジュアルスタイルの変更ではなく、仮想レジストリにはアクセスしません)VB6のマニフェストがWindows 7で動作しない
exeファイル名は、マニフェストがCapadm40.exe.manifest命名され、Capadm40.exeで、次のものが含まれます。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.Capadm40"
type="win32"/>
<description>Administers the System</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
しかし、これは任意の違いを確認していないようです。つまり、アプリケーションはまだ仮想化されたレジストリハイブを使用しています。何が奇妙なのは、アプリケーションexeのプロパティで「このプログラムを管理者として実行する」オプションをアンチックした後も、Windowsはアプリケーションアイコンにシールドを表示しています。マニフェストの不具合よりも何か案は?
exe上にシールドが付いている場合は、実行時に必ず高さの確認を求めますか?その場合、少なくともUACの仮想化ではなく、仮想化はできません。マニフェストの問題に対処しようとする前に、仮想化されたハイブの場所への書き込みが本当に確実であるかどうかを確認してください。 –
これは標高を求めるものではありません。シールドを表示しているアイコンは、ある種のWindowsのバグでなければならないと思います。なぜなら、データのパスが異なるため、仮想化されたレジストリを使用しているためです私は右クリックし、runas管理者。問題はマニフェストが影響を及ぼさないようです(マニフェストをrequireAdministratorに変更したとしても) –
マニフェストは間違いなく有効ですか?例えばそれはUTF-8でエンコードされていますか? – MarkJ