当Delphi项目创建具有特定名称的可执行文件时,Windows会创建指向游戏的链接。

10

我有一个名为VR的Delphi项目,它生成一个名为VR.exe的可执行文件。令我失望的是,Windows(我正在运行Windows 7 64位旗舰版)在开始菜单和游戏下添加了链接:Search & Rescue: Vietnam MED+EVAC。链接的图标是默认的Delphi应用程序图标。

我做了一些研究,找到了这篇文章:

http://social.technet.microsoft.com/Forums/windows/en-US/a5919fc1-db3d-4f13-b241-d059df2bf11f/renaming-a-file-into-vrexe

如何防止Windows这样做?

更新:我有另一个项目MM,它生成mm.exe。这个项目创建了一个指向Steam黑暗救世主魔法单人游戏的链接。

另一个更新:我们向Microsoft提交了支持请求。他们承认这是一个错误,但未提供修复的时间表。

更新:这是来自Microsoft的答复:

我写信告诉您,我们的端存在该问题,并且已经在过去报告过此问题。由于这已被确定为与我们的代码“设计有关”,到目前为止,我们没有解决此问题,因此我将无法提供太多帮助。 但是,如果您有任何要向我们提出的观点,比如它对业务的影响或任何其他问题,请告诉我。

我接受了Remy的答案。


酷炫。+1 - 我以前从未听说过这个。 - 500 - Internal Server Error
2
@costa,只需运行任何以该名称命名的可执行文件即可。如果您仍然认为这是一个编程问题,那么它最多是与语言无关的。您可以随意做自己想做的事情,但我认为您在Super User上可能会得到更好的帮助,而不是在这里。 - TLama
1
相当认真地说,这个问题最好在其他网站上提问。如果你想得到帮助,你应该遵循这个建议。 - David Heffernan
1
不知道,如果可以通过从IGameExplorer中删除RemoveGame来解决问题,那么它可能与编程有关。 - Sertac Akyuz
1
@Sertac,每次运行你的应用程序都需要这样吗?如果你真的安装了那个游戏会怎么样? - TLama
显示剩余10条评论
1个回答

6

根据MSDN的说法, 游戏应用程序应该将自己集成到游戏资源管理器中,Windows不应该自动集成任何东西。但我可以证实,在Win7 Home系统上将任何应用程序重命名为vr.exe并运行它会导致Search & Rescue: Vietnam MED+EVAC出现在游戏资源管理器中(当应用程序第一次运行时还会有明显的延迟,我想这是由于识别/集成所导致的)。

运行应用程序后,我发现与该游戏相关联的以下注册表键:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\S-1-5-21-991038988-4040401710-2535580036-1000\{2A051900-E642-4D69-8D4E-1B3A2FD42CCF}

它包含对该文件的引用

C:\Windows\system32\GameUXLegacyGDFs.dll

我使用资源查看器查看了文件内容,发现它充满了包含GDF游戏定义的RC_DATA资源。
我删除了注册表键,现在无论我运行重命名后的vr.exe文件多少次,游戏都不再出现在游戏资源管理器中。

2
那么问题来了,删除这个注册表键如何干扰游戏资源管理器中真正的《搜救行动:越南 MED+EVAC》游戏注册(在此之前或之后安装)。我知道这是一个边角案例,但仍然... [+1] - TLama
2
我删除的注册表键是用于Microsoft对游戏的旧版检测。我期望真正的游戏能够使用自己的DLL并且可能会有不同的GUID来正确地注册自己。 - Remy Lebeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接