Ver Mensaje Individual
  #5  
Antiguo 27-06-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Supongo, y repito lo de supongo, que si estás ejecutando el programa desde wine entonces estará "aislado" del entorno y no sabrá que se está ejecutando realmente en un linux.
Sí y no. En realidad es posible saber si está ejecutando en Wine+Linux. Incluso es posible saber si está ejecutando en un Windows instalado en una máquina virtual. Casi todos los sistemas operativos incluyen métodos para obtener información del sistema en el que se están ejecutando: microprocesador, memoria, discos, etc., así como la versión del sistema operativo. Al preguntarle a Wine este responde "Wine + Linux" (no conozco la respuesta exacta, pero se me entiende ). Claro que se puede configurar Wine para que engañe al sistema y le diga que es un Windows (en el peor de los casos, modificas el código fuente de Wine, recompilas... ).

De todas formas, no es necesario preguntar en qué sistema se está ejecutando para configurar las rutas de los archivos. En FreePascal existen una serie de funciones que hacen el trabajo por ti, como por ejemplo la función GetTempDir que devuelve la ruta completa al directorio "temporal", o GetUserDir que devuelve la ruta al directorio del usuario (/home/<usuario> en POSIX o C:/Documents and Settings/<usuario> en Windows, etc.) y GetAppConfigFile te devuelve la ruta completa a un "archivo de configuración por defecto" para tu aplicación (/home/<usuario>/.config/<aplicacion>.cfg en POSIX, etc). No estoy seguro, pero posiblemente Delphi y Builder también tenga funciones similares, y si no existen deberíais exigir a CodeGears que las implementen, máxime cuando quieren que sus compiladores generen ejecutables para MacOS y Linux.

En el peor de los casos, basta con comprobar las variables de entorno o el registro de Windows, que sé de buena tinta que existen en Windows. Además, hacerlo así hará que tu aplicación se adapte a la configuración personalizada, ya que hay gente que cambia las rutas de los directorios del sistema por conveniencia, por ejemplo poner el directorio "Documents and settings" en otra partición o disco de forma que si tienen que reinstalar el sistema dicha información (documentos, configuraciones, etc.) no se pierda.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita