【发布时间】:2015-05-18 10:34:00
【问题描述】:
我需要检测应用程序是否在 Win32/64 上运行。
更新:People 报告说依赖 [HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0] 密钥不是一个好主意。
【问题讨论】:
-
该代码非常粗糙。
LoadLibrary返回一个HMODULE。GetModuleHandle('kernel32')会比LoadLibrary更好。狡猾地使用@。vIsWow64的毫无意义的初始化。似乎很难相信IsWow64Process会在 32 位操作系统上返回True。 -
@TLama 问题中的代码调用
IsWow64Process。它不仅仅检测函数是否被导出。 -
@Altar 我无法复制。在我的 32 位 xp 系统上,您的函数带有褶皱,返回 false。请注意,我添加了诊断以证明它已到达对
IsWow64Process的调用并且该调用成功(返回 true)。我很难相信IsWow64Process不起作用。 -
主要是我希望您在继续编写代码之前注意
TOSVersion.Architecture。您可以删除问题中的代码,然后使用TOSVersion.Architecture。 -
@user246408 Serg,你关闭这个的骗子询问 D2007,而不是排除
TOSVersion的答案。这里的问题是 XE7。
标签: delphi 32bit-64bit delphi-xe7