Pregunta

Estoy construyendo una aplicación que pueda tener algunas tareas diferentes dependiendo del sistema operativo que lo esté ejecutando, por lo que quiero saber si hay alguna forma de detectar el sistema operativo y almacenarlo en una variable.

¿Fue útil?

Solución

Debido a que tiene que compilar ejecutables separados para cada sistema operativo, solo puede usar {$IFDEF}:

{$IFDEF MACOS} // Mac OSX
{$IFDEF WIN64} // Windows 64 bit
{$IFDEF WIN32} // Windows 32 bit app 
{$IFDEF Linux} // Linux
{$IFDEF UNIX}  // UNIX

Puede diferenciar entre Win32 y Win64 de una aplicación de 32 bits usando SysUtils.TOSVersion.Architecture; Los valores posibles son arIntelX86 y arIntelX64, y genéricamente (sin tener en cuenta la "bitness") entre Windows y MacOS con TOSVersion.Platform.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top