![]() |
Re: Bios einstellen über Delphi
Zitat:
Das BIOS hatte früher einen CMOS Speicher auf der Platine, welche seine Einstellungen aufgenommen hatte (Portadresse 0x40 Adressselektion, Portadresse 0x41 Datenport). Dieser CMOS Speicher war durch eine onboard Pufferbatterie versorgt. Später hatte Dallas ihre RealtimeClocks recht erfolgreich vermarktet, da diese pinkompatibel waren zu den CMOS Schaltkreisen und die Batterie gleich mitbrachten. Nun Reichen die 256 Speicherstellen nicht mehr aus und es würde das sogenannte NVRAM (non volatile RAM) eingeführt, welcher heutzutage direkt im Chipsatz liegt (genauso wie der BIOS Flash-Speicher, meist doppelt ausgelegt (DualBIOS) um die Auswirkungen von Flashfehlern zu verringern). Dieser NVRAM wird über eine Chipsatz Unterfunktion angesprochen und von daher findet man Adressen und Ports zum Zugang zum NVRAM in den Resourcen des Chipsatzes. EPROM sind schon recht schnell in den 90'ern durch EEPROMs ersetzt worden und dann nochmals durch Flash Speicher, wo diese bezahlbar wurden (bzw. zur Massenware). Zitat:
Auch hat man für den Nachfolger des BIOS, dem EFI (Enhanced Firmware Interface), einen neuen Begriff gefunden und nennt es afaik nicht mehr NVRAM. /EDIT: Rechtschreibfehler korrigiert. |
Re: Bios einstellen über Delphi
@Muetze1:
Kleine Korrektur: Falsch: non violateable Richtig: non volatile Mehr Infos: ![]() |
Re: Bios einstellen über Delphi
Im Prinzip kann jeder Mainboardhersteller die Belegung des NVRAM beliebig ändern, und man müsste eigentlich herausfinden, in welchen Bits/Bytes die Einstellungen gespeichert werden. Dafür bleibt nur die Try-Methode, also ein NVRAM-Speicherabbild erzeugen, die Optionen anpassen, und erneut ein Speicherabbild erzeugen bzw. die Ergebnisse vergleichen. Hier hilft Dir evtl. das Programm CMOSInfo (
![]() Falls Du ein Award-BIOS hast, könnte das Modbin6-Programm vielleicht helfen. Hierfür benötigtst Du neben dem eigentlichen Programm (welches übrigens nicht offiziell erhältlich ist, Google hilft aber) eine BIOS-BIN-Datei, die Du Dir entweder vom Mainboardhersteller herunterlädst oder mit der Backup-Option eines BIOS-Flash-Programms erstellst. Anschließend stellt Modbin6 den Inhalt des BIOS-Images dar, wozu mitunter auch die versteckten BIOS-Optionen gehören. Dort suchst Du die Option "Restore Restart at AC power loss" o.ä, und kannst Dir in den Eigenschaften anzeigen lassen, welche NVRAM-Register dazu verwendet werden. Soweit ich aber weiß, erfolgen die NVRAM-Zugriffe über Ports, und die erfordern wiederum einen Gerätetreiber und Admin-Rechte. Der Aufwand ist also immens und nur für eine spezielle Gruppe von Zielrechnern erfolgreich. Solltest Du ein AMI- oder Phoenix-BIOS oder sogar EFI haben, sehen die Chancen proportional schlechter aus. |
Re: Bios einstellen über Delphi
SleepAndWakeUp
![]() int asSleepAndWakeUpS(int n); int asSleepAndWakeUp(int nDay,int nH,int nM,int nS); First function have just one parameter, number of seconds. This will be time interval. Another function will use more. You will set after what time interval you want PC to wake UP. Remember, after you call this function, we create wait timer function and we put PC to sleep. PC must have new motherboard with ACPI support. ---------------- int asOnlySetWakeUpTime(int nYear, int nMonth, int nDay, int nHour, int nMinute, int nSecond); This function will ONLY SET TIME when you want your PC to wake up. So, after calling this function, you can continue working with your application, but put your PC to sleep before this time. Please we don’t check these parameters, so YOU MUST provide parameters checking. That moment of time MUST be after current time. |
Re: Bios einstellen über Delphi
NVRAM kenne ich aus dem Embedded-Linux-Bereich wo Bootloader, Kernel und Konfiguration in verschiedenen Bereichen des selben Flash-RAM liegen. Da gibts dann so Linux-Tools wie nvset und nvread. Aber das hat im Grunde nichts mit dem PC-BIOS zu tun.
|
Re: Bios einstellen über Delphi
Ich hab da mal ein Code-Schnipsel aus dem nvram-wakeup unter Linux.
Vielleicht kannst Du damit was anfangen:
Code:
Gefunden bei ################################################ ## Mainboard autodetection information: ## ## - Mainboard vendor: "MICRO-STAR INTERNATIONAL CO., LTD" ## - Mainboard type: "MS-6119 (i440BX)" ## - Mainboard revision: "1.X" ## - BIOS vendor: "Award Software International, Inc." ## - BIOS version: "4.51 PG" ## - BIOS release: "08/21/00" addr_stat = 0x46 addr_day = 0x47 addr_hour = 0x48 addr_min = 0x49 addr_sec = 0x4A addr_chk_h = 0x6F addr_chk_l = 0x70 need_reboot = ON_ANY_CHANGE ![]() Oder direkt dieser Beitrag: ![]() |
Re: Bios einstellen über Delphi
Wie gesagt ich glaube das ganze hatte sich schon erledigt, weil wenn ich sowas mache dann muss es für "alle" boards gehen.
Und Kompliziert sieht es auch aus. zudem kommt noch dazu wenn ich jemanden das Programm geben sollte und irdgenwas schießt sich ab und die bekommen raus das mein Programm im Bios rumfummelt. Wer haftet dann, ich? nein danke Wer von euch, hat lust von jemandem ein Programm zunehmen das im NVRAM rummacht |
Re: Bios einstellen über Delphi
Bietet der Scheduler oder die Aufgabenplanung keine Möglichkeit, den PC zeitgesteuert einzuschalten ?
|
Re: Bios einstellen über Delphi
Soweit wie mir bekannt ist, geht das nur im BIOS, aber ich lasse mich gerne eines bessern belehren.
|
Re: Bios einstellen über Delphi
Ich bin mir nicht sicher, kann mich aber wage erinnern, so etwas im Hotline-Bereich einer der letzten c't-Ausgaben gelesen zu haben. Einfach mal auf deren Seite suchen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz