![]() |
Bios einstellen über Delphi
Hi
Hab mal ne Frage wegen dem Bios. Kann man mit einem Selbstgeschriebenen Programm in Delphi änderungen im Bios vornehemen z.b. Einschalt Zeitpunkt. Wenn ja habt Ihr vielleicht einen Ansatz und wie ist es wenn das BIOS Passwort geschützt ist Gruss Sascha |
Re: Bios einstellen über Delphi
Zitat:
|
Re: Bios einstellen über Delphi
Zitat:
|
Re: Bios einstellen über Delphi
Ich lasse mein Rechner mit einem Programm von mir, Automatisch runterfahren und stelle das auch in meiner Software ein, zu welchem Zeitpunkt.
Jetzt lasse ich den Rechner auch immer zu einer gewissen Uhrzeit wieder hochfahren, das habe ich im Bios eingestellt. Und da ich keine lust habe immer wieder in Bios zugehen, wenn ich den Rechner zum anderen Zeitpunkt hochfahren lassen will, habe ich mir gedacht vieleicht kann ich das ja mit Delphi machen. Das ist der Grund |
Re: Bios einstellen über Delphi
Für sowas hab ich mir ne programmierbare Relaisschaltung gebaut (serielle Ansteuerung). Der Rechner wird komplett vom Strom getrennt was ja auch Strom spart. Im BIOS einstellen "Restart at AC power loss" oder so ähnlich und wenn der Saft kommt fährt der Laden wieder hoch.
|
Re: Bios einstellen über Delphi
Hi,
Zitat:
Im übrigen können alle BIOS-Einstellungen auch ohne das BIOS getätigt werden, da dieses ja auch "nur" eine Software ist. Es kann aber sein, dass das OS das aus Sicherheitsgründen verweigert. Windows lässt einen eingeschränkten Nutzer ja nicht einmal die Uhr verstellen. Unter DOS wäre es aber garantiert irgendwie möglich. Mfg FAlter |
Re: Bios einstellen über Delphi
Zitat:
|
Re: Bios einstellen über Delphi
Mach dich mal per google auf die suche nach "NVRAM" oder so ähnlich.
Zumindest kenn ich das von Linux her, dass man dem PC beim Runterfahren eine Zeit für das nächste Aufwachen mitgeben kann. Das können aber leider nicht alle BIOS, sie müssen dafür eben das NVRAM haben. |
Re: Bios einstellen über Delphi
Gut habe ein paar Bios Editoren gefunden, nur das dumme ist man brauch ja für die unterschiedlichen Boards, auch unterschiedliche Editoren.
Naja Thema hat sich erledigt wäre schön gewesen. Danke trotzdem |
Re: Bios einstellen über Delphi
Zitat:
|
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.
|
Re: Bios einstellen über Delphi
Zitat:
|
Re: Bios einstellen über Delphi
Zitat:
|
Re: Bios einstellen über Delphi
Das sowas mit WakeOnLan funktioniert ist mir bekannt und das der Rechner für irgenwelche sachen im Standby modus sein muss um Ihn Hochzufahren auch.
Hab jeglich nach der möglichkeit gefragt über Delphi das Automatische hochfahren gefragt und das kann auch nicht jedes Board(Bios). Wie gesagt dann hat sich das wohl erledigt Danke euch trotzdem |
Re: Bios einstellen über Delphi
Ich weiss, dass das Thema nun einen Monat alt ist, aber falls noch Interesse an einer Lösung besteht:
Es gibt 2 Möglichkeiten, den Computer aus Standby oder Hibernate zu wecken. Zunächst mit der Windows API. Das Zauberwort heisst hier [msdn]http://msdn.microsoft.com/en-us/library/ms686289%28VS.85%29.aspx[/msdn]. Man erzeugt einen solchen Timer, schickt das System dannach in Standby/Hibernate. Falls der Parameter 6 (fResume) als true übergeben wurde, weckt der Timer das System, sobald er getriggert wird. Die 2. Möglichkeit geht über das BIOS, dazu benötigt man aber IO-Zugriff. Ich verwende derzeit WinRing0 ( ![]() Da meine Entwicklung auch noch in den Kinderschuhen steckt, kann ich leider keinen Delphi-Source posten. Aber folgende Quellen habe ich als Referenz genommen: ![]() ![]() Falls noch Interesse besteht, würde ich in Zukunft weitere Infos oder Source beitragen. |
Re: Bios einstellen über Delphi
Ein Monat ist gut :-D - Eher ein Jahr und ein Monat... Aber nichtsdestotrotz sind Antworten und Ideen immer willkommen!
|
Re: Bios einstellen über Delphi
Mit googlen nach "SHUTDOWN wake up flag" findet man viel.
Ausserdem: Es gibt YARD: ![]() Es enthält einen Y.A.R.D. Recording Assistent. Eine der vielen Funktionen ist: Power On - via Timer - d.h. Hochfahren des PC zu einer bestimmen Uhrzeit & Datum ![]() ---------------------------------------------------------------------------------------- WakeupOnStandBy ![]() ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 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