【问题标题】:Can I add manifest file to someone else's exe?我可以将清单文件添加到其他人的 exe 中吗?
【发布时间】:2009-09-18 01:11:13
【问题描述】:

我有一些我没有代码的 EXE。我还能添加清单文件吗?

另外,根据我对该主题的理解,对于一个符合 Vista 的程序,它不应该写入任何安全的位置,如 HKLM、程序文件等。

对于注册表,我们可以使用 HKCU,但是关于在 Program Files 中创建的文件?是否应该在 EXE 执行期间在不安全的位置创建它们?

谢谢

【问题讨论】:

  • 你不需要告诉别人你在帖子中修复了什么。
  • 我试图表明他应该说得更正确。

标签: c++ windows-vista


【解决方案1】:

您可以使用外部文件添加清单。只需将清单放在带有 exe 的文件夹中,并将其命名为“file.exe.manifset”,其中 file.exe 是可执行文件名。但是,在 Server 2003、Vista 及更高版本上,如果程序具有嵌入式清单,则默认情况下将忽略外部清单。有一个注册表项将覆盖此行为,或者您可以使用 Windows SDK 工具中的 mt.exe 替换 exe 中的清单。详情请见this link

对于尝试写入 Program Files 或 HKLM 的现有应用程序,它们应该在 Vista 上运行,因为 Vista 会将写入重定向到另一个位置并让应用程序看起来写入成功。

【讨论】:

    【解决方案2】:

    您应该能够在没有源代码的情况下创建清单文件。

    安装或更新需要管理权限是可以的,因此您可以将 EXE 和 DLL(以及支持文件)放在 Program Files 中。

    需要管理员权限才能正常使用是不行的,因此您应该将数据文件和设置放在 HKCU 的注册表或用户的 Application Data 文件夹中。

    【讨论】:

    • 有没有windows api可以直接获取应用数据文件夹路径?
    • 你的应用程序数据文件夹应该是你自己在%appData%下创建的
    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2014-10-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    相关资源
    最近更新 更多