الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية الحصول على التاريخ من ال BIOS ?

مغلق
بدأه مبرمج مصرى في 17 يناير 2005 · 5 رد · 993 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيف يتم الحصول على التاريخ و الوقت من خلال الـ BIOS كما يفعل الــ WINDOWS ??

أرجو الإجابة بإي لغة برمجة أو حتى الفكرة والدوال المستخدمة فقط

VB , C++ OR Assm

Eng.Mostafa Abd El Zaher
 
Embedded Systems Programmer
Computer Programmer
 
للاطلاع على اعمالنا في مختلف المجالات برجاء زيارة صفحتنا
 
 

https://www.facebook.com/EgyESD

Mostafa_Cool2001@Hotmail.com

00201005674650

#2

السلام عليكم,

استعمل الأسمبلر والمقاطعة الخاصة لذلك كما يلي :

4E02

Category: vendor-specific BIOS extensions 

INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - GET BIOS DATA AND TIME

	AH = 02h
Return: AX = number of days since January 1, 1980
	CH = hours
	CL = minutes
	DH = seconds
	DL = hundredths
SeeAlso: AH=00h,AH=01h

أما إذا كنت في الوندوز فيمكن أن تستعمل دالة الآبي التالية :

VOID GetSystemTime(
  LPSYSTEMTIME lpSystemTime   // address of system time structure
);

علما أن الستراكت SYSTEMTIME هي كما يلي :

typedef struct _SYSTEMTIME {  // st 
    WORD wYear; 
    WORD wMonth; 
    WORD wDayOfWeek; 
    WORD wDay; 
    WORD wHour; 
    WORD wMinute; 
    WORD wSecond; 
    WORD wMilliseconds; 
} SYSTEMTIME;

إلى اللقاء.

#3

السلام عليكم ورحمة الله وبركاته

شكراً على الاجابة

طبعاً انا عارف الدالة GetSysTime مفيش حد ميعرفهاش لكن يمكن انا سؤالي اللي مكنش واضح بقدر كافي

انا اقصد ازاي اجيب التاريخ من البيوس وانا فى بيئة الويندوز

على سبيل المثال افترض ان المستخدم غير تاريخ الويندوز وده شىء ممكن اي مستخدم يعملو انا عاوز احصل على التاريخ الصحيح مش التاريخ اللي المتستخدم غيرو

وانا هاحاول اقوم بضرب مثال من واقع البرامج الموجودة فى السوق عشان اوصلك الامر

دلوقتي تخيل انك انشأت سيستم اي كان هو لكنو متعدد المستخدمين

اي سيتم متعدد المستخدمين بنحتاج نضع لكل مستخدم صلاحيات

نفترض ان من ضمن الصلاحيات دي هي الدخول على البرنامج فى يوم معين بس من الشهر

وليكن ان الموظف ده مش من حق يدخل على النظام غير يوم 1/1 من كل شهر

دلوقتي لو انا اعتمدت على التاريخ المجلوب بواسطة الدالة GetSysTime لو المستخدم عدل التاريخ من خلال الويندوز هايقدر يدخل على النظام لان GetSysTime بتجيب التاريخ من الويندوز

لكن لو قدرنا نحصل على التاريخ من خلال البيوس زي ما الويندوز اثناء عملية الـ SetUp بيحصل عليه كده يبقي اتحلت المشكلة وهي دي الطريقة اللي انا عاوز احصل بيها على التاريخ

ارجو ان يكون السؤال اتضح الان واللي عندو اي معلومة عن الموضوع ده ياريت يطرحها

Eng.Mostafa Abd El Zaher
 
Embedded Systems Programmer
Computer Programmer
 
للاطلاع على اعمالنا في مختلف المجالات برجاء زيارة صفحتنا
 
 

https://www.facebook.com/EgyESD

Mostafa_Cool2001@Hotmail.com

00201005674650

#4

من قال أن التاريخ ممكن ياتى من الوندوز ؟؟؟

الوندوز يقوم بقراءه التاريخ من البيوز عند كل اقلاع

هذا ما اعرفه ولا أنا غلطان

مع تحياتى للمبرمجون العرب

زاز

#5

السلام عليكم

نعم الوندوز يغير ساعة النظام الموجوده فى البيوس, الحل لمشكتك اخى هى ان يكون البرنامج فى سرفر ثم تقوم بعمليه السماح للموظف إلى البرنامج إذا كان ساعة وتاريخ السرفر تسمح بذالك, وطبعاً لن يكون للمستخدم اى صلاحيه تسمح له بتغير الوقت فى السرفر.

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#6

السلام عليكم,

ما ذكره الإخوان صحيح وقد تكلمت من قبل في موضوع سابق عن التجربة التالية : غير الساعة أو التاريخ في نظام الوندوز واقرأه في البيوس وغير مرة أخرى تاريخ أو الساعة في البيوس واقرأه في الوندوز وستتأكد لنفسك.

إلى اللقاء.

هذا الموضوع مغلق.

مواضيع مشابهة