如何检测Delphi程序是否在PlayOnMac中运行

时间:2014-12-11 00:56:01

标签: delphi wine delphi-xe7

我有一个Delphi应用程序,可以在MacOS 10.9.5 Yosemite下的PlayOnMac中顺利运行。

它具有最小化TrayBar应用程序的功能。由于Mac没有TrayBar的概念,如果应用程序在Mac上运行,我想禁用此功能。

检查Windows版本不是一个选项,因为PlayOnMac通过模拟Windows API并报告操作系统是Windows XP,很好地模糊了主机操作系统是Mac的事实。

如何检测应用程序是否在PlayOnMac中运行?

2 个答案:

答案 0 :(得分:6)

由于PlayOnmac engine uses Wine,您可以尝试使用wine_get_version ntdll.dll 模块上搜索wine_nt_to_unix_file_nameLoadLibrary方法GetProcAddress函数。

另外尝试这些资源。

答案 1 :(得分:0)

您的应用在仿真系统中运行。它认为它在Windows上运行,它根本看不到MacOS。因此,除非PlayOnMac的仿真以某种方式在模拟GetSystemInfo()或注册表或Windows应用程序可以访问的其他地方进行报告,否则应用程序根本就没有任何线索。这就是仿真的全部内容。