FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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) { #ifdef DOS return "DOS" #endif #ifdef OS2 return "OS/2 (o eCom Station)"; #endif #ifdef WIN16 return "DOS + Windows 3.x"; #endif #ifdef WIN32 #ifdef WINXP return "Windows XP"; #endif #ifdef WINNT return "Windows NT"; #endif return "Windows 95/98"; #endif #if defined(COCOA) || defined(DARWIN) return "MacOS X"; #endif #ifdef BSD #ifdef FREE_BSD return "freeBSD"; #endif return "BSD"; #endif #ifdef LINUX return "GNU/Linux"; #endif } |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
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.... |
#5
|
|||
|
|||
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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como saber tipo de datos de query en builder c++ | vivamotos | C++ Builder | 1 | 24-08-2006 10:35:17 |
como saber el tipo de datos de un campo | miguelml | Varios | 4 | 17-11-2005 08:36:17 |
Como saber el tipo de datos de un campo de una tabla | Javi2 | SQL | 1 | 27-06-2005 14:18:28 |
Como saber el tipo de acceso a una carpeta | Javi2 | Varios | 3 | 22-07-2004 11:56:44 |
Como saber el tipo de componentes a partir de un string? | Roger | OOP | 2 | 02-04-2004 13:21:48 |
|