Cómo saber qué tipo de SO es.
Hola!
Tengo una duda, se puede saber por código qué sistema operativo se está ejecutando? Mas o menos que cuadno pinche en un botón de mi aplicación, me diga qué tipo de SO es, si es windows, linux... Existe algún componente, API ... para ello? Trabajo sobre Builder6. Gracias |
Creo que POSIX define una función para ello, pero únicamente te serviría para sistemas POSIX o cercanos a él (UNIX, GNU/Linux, AIX, QNX, MacOS, BeOS...).
Una alternativa que sí tienen todos los compiladores de C/C++ son las directivas de identificación. Por ejemplo: Código:
char* NombreSO (void) |
Buenas tardes,
Estoy haciendo un función que detecta los equipos conectados en la misma red y ya puestos, me gustaría saber qué SO tiene dichos equipos que están online. Te agradecería que me pudieras poner un ejemplo de cómo puedo saber a qué SO pertenece, no entiendo muy bien cómo tengo que aplicar las directivas. Gracias y un saludo. |
MIRE PRUEBE CON ESTE CODIGO..
SIRVE PARA WINDOWS LE DICE LA VERSION Y HASTA QUE SP ES... void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString version; SistOpe.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); i=GetVersionEx(&SistOpe); if(i) switch (SistOpe.dwMajorVersion) { case 4: switch (SistOpe.dwMinorVersion) { case 0://W95 o WNT if (SistOpe.dwPlatformId ==VER_PLATFORM_WIN32_WINDOWS) {//W95 version=AnsiString("Windows 95 "); }else {//WNT; version=AnsiString("Windows NT 4.0 "); } break; case 10://W98 version=AnsiString("Windows 98 "); break; case 90://WMe version=AnsiString("Windows Me "); break; default://Desconocido version=AnsiString("Desconocido "); } break; case 3: version=AnsiString("Windows NT 3.51 "); break; case 5: switch (SistOpe.dwMinorVersion) { case 0://W2k version=AnsiString("Windows 2000 "); break; case 1://WXP version=AnsiString("Windows XP "); break; case 2://W2003 version=AnsiString("Windows 2003 "); break; default: version=AnsiString("Desconocido "); } break; case 6: switch(SistOpe.dwMinorVersion) { case 0: version=AnsiString("Windows Vista "); break; default: version=AnsiString("Desconocido "); } break; default: version=AnsiString("Desconocido ");//MessageBox(NULL,"Desconocido","Sistema Operativo",NULL); } Label1->Caption=version+SistOpe.szCSDVersion; } LA VERDAD YO EN LINUX NO TRABAJO Y NO SABRIA DECIRLE SY HAY TAMBIEN FUNCIONA PERO ME PARECE QUE SI.. BUENO ESPERO QUE SEA DE UTILIDAD SALUTE.... |
Hola.
Ante todo gracias por la ayuda. He estado viendo el código y aparentemente cuando pinchas sobre un botón ¿te dice la versión del pc en que está ejecutando la aplicación que contiene este código? Hay alguna forma de saber aparte del host de mi pc, ¿los host que están conectado a la misma red a partir de sus ips? Gracias. |
La franja horaria es GMT +2. Ahora son las 13:12:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi