FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Ayuda con Fecha de Bios
Hola...
Aqui voy de nuevo... intento obtener la fecha de Bios de la Pc y para ello pude averiguar que se puede obtener el mismo desde el debug con FFFF:5 l 8 Pero no me figuro como implementarlo en builder c++ 6... alquien podría darme algun consejo de como implementarlo?? un saludo |
#2
|
||||
|
||||
Hola Novatin.
Bajo DOS podías obtener esos datos en la dirección 0xFFFF5, pero en win32/64 ya no es posible por que el espacio de direcciones de la bios está protegido por el S.O. Podes obtener esa información desde el registro de windows: Código:
#include <registry.hpp> AnsiString __fastcall GetBiosDate() { char *RegPath = "\\HARDWARE\\DESCRIPTION\\System"; AnsiString BiosDate = ""; TRegistry *reg = new TRegistry(KEY_ALL_ACCESS); reg->RootKey = HKEY_LOCAL_MACHINE; __try { if(reg->KeyExists(RegPath)) { reg->OpenKey(RegPath, false); BiosDate = reg->ReadString("SystemBiosDate"); } } __finally { reg->CloseKey(); } delete reg; return BiosDate; } Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage("BIOS Date: " + GetBiosDate()); }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Gracias por la respuesta ecfisa...
Y, debo decir que el codigo me funciona correctamente para windowsXP pero no me funciona para Windows Millenium... , es decir el código lo quiero usar indistintamente con winxp o con millenium.. o win98... había probado el debug con d FFFF:5 l 8 con winxp, winme y win98 y me funcionan correctamente... Asi que fui naufragando con google en busca de una solución "generica" ... hasta que di con esta pagina: http://www.dailyfreecode.com/code/re...hine-1768.aspx Como podría insertarlo en una función en builder?? ... les aviso que de asm no se casi nada.. espero puedan ayudarme... saludos. Última edición por Novatin fecha: 21-05-2013 a las 21:56:13. Razón: aclaro: |
#4
|
||||
|
||||
Hola Novatin.
Otra opción es verificar sobre que OS esta corriendo la aplicación y de acuerdo a eso ejecutar una u otra función. En este hilo vas a poder encontrar algo al respecto: Cómo saber qué tipo de SO es. Sobre el código assembler, sin ser gran entendido en el tema veo que está llamando a la función INT 21H, que es una función multipropósito del DOS y no vas a poder usarla en aplicaciones de 32 bits. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Bueno en parte creo que eso solucionaría mi problema, aunque se me agrandaría el código por tener que definir funciones para cada tipo de S.O .... Pero ahora me quedé con muchas más dudas... (y como todo "buen programador" me gustaría que me ayudaran aclararlas)
Disculpas si mis preguntas son tontas... * Porqué el debug si puede acceder a la captura del bios y porque builder no puede... * Otra Más... Encontré este pequeño fragmento de código que esta escrito en TurboC, y funciona correctamente en winxp , winmillenium y msdos... Código:
#include <dos.h> #include <stdio.h> void main() { int foo, i; printf("\n"); for(i=0;i<8;i++) { foo = peekb(0xf000, 0xFFF5+i); printf("%c", foo); } printf("\n"); } Porque TurboC++ si puede acceder a obtener la fecha de bios de esta manera y Builder c++ No? (aun estando en winxp donde se supone que no debería funcionar... pos.. funciona..!) Cualquier idea bienvenida... gracias de antemano. |
#6
|
||||
|
||||
Hola Novatin.
Cita:
Cita:
Código:
#include <stdio.h> int main(void) { unsigned char far *p = (unsigned char far *)0xF000FFF5; // (*) int i; for(i=0; i<8; i++) printf("%c",(unsigned char far) *(p+i)); getchar(); return 0; } (*) Builder c++ no necesita far pointers por lo antedicho, es decir que si deseas probarlo en Builder C++ para salir de dudas, debes quitar "far" del código. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda con Saber si una fecha es menor a la fecha del Servidor | microbiano | Varios | 3 | 01-05-2012 21:01:51 |
Regrabar Bios con Delphi | kurono | Varios | 2 | 21-05-2010 18:46:15 |
Ayuda, Como calcular fecha de vencimiento mensual a partir de una fecha x en delphi | Renis | Impresión | 4 | 23-08-2007 23:45:14 |
modificar el BIOS | aprendiz2 | OOP | 2 | 29-04-2007 20:21:48 |
mirar la bios | botones67 | Varios | 1 | 14-02-2005 15:52:45 |
|