السلام عليكم ورحمة الله وبركاته
عندي سؤال اريد كود استطيع من خلاله معرفة الوقت
بالساعه وبالدقيقه وبالثانيه لمدة تشغيل الكمبيوتر
مع شكري ...
السلام عليكم ورحمة الله وبركاته
عندي سؤال اريد كود استطيع من خلاله معرفة الوقت
بالساعه وبالدقيقه وبالثانيه لمدة تشغيل الكمبيوتر
مع شكري ...
ما في حل يا اخوان
عليك بمنتدى الهاردوير HardWear
بسم الله الذي لا يضر مع اسمه شيء بالارض ولا بالسماء وهو السميع العليم
السلام عليكــم ورحمـة الله وبركاتــه ،،
توجد الخاصية Environment.TickCount تعطى الوقت الذى مر منذ تشغيل الجهاز بالمللى ثانية
بقليل من الحسابات يمكنك تحويل القيمة إلى الشكل الذى تريد :wink:
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
جرب هذا الكود :
Dim ts As TimeSpan Dim dt As DateTime dt = DateTime.Now ts = dt - dt.AddTicks(-System.Environment.TickCount) Console.WriteLine(ts)
هذا الكود لا يتطرق لمدة التشغيل حتى بعد استيقاظ الحاسوب من سبات Sleep
اخي الكود ما اشتغل انا حولت الكود للطريقة التالية لكن ما اشتغل
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim ts As TimeSpan
Dim dt As DateTime
dt = DateTime.Now
ts = dt - dt.AddTicks(-System.Environment.TickCount)
MsgBox(ts)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Classيجب تحويل محتوى العنصر ts إلى نص قبل إظهاره من طرف MsgBox
MsgBox(ts.ToString())
اخي عملت مثل ما قلت لي لكن الناتج كان غريب
00:00:00:586563
يعني الساعات والدقائق والثواني اصفار لا يتغيير سوى الرقم الاخير
جرب
Dim iMilSec As TimeSpan Dim iSec As Integer Dim dt As DateTime dt = DateTime.Now iMilSec = dt - dt.AddTicks(-System.Environment.TickCount) iSec = (iMilSec.TotalMilliseconds / 1000) Dim aa As String aa = Format(iSec \ 3600, "00") & ":" & Format((iSec Mod 3600) \ 60, "00") & ":" & Format(iSec Mod 60, "00") MessageBox.Show(aa)
تم تعديل هذه المشاركة بواسطة naji-m في 15 يوليو 2009 في 13:14
أنا آسف لأنني لم أجرب الكود قبل بعته. الخطأ يكمن في أن System.Environment.TickCount ترجع عدد الأجزاء من الألف من الثانية milliseconds و ليس عدد ضربات الساعة الداخلية للنظام و التي تقدر ب 100 نانوثانية. هذا كود مصحح و مجرب :
Dim dt As DateTime Dim ts As TimeSpan dt = DateTime.Now ts = dt - dt.AddMilliseconds(-System.Environment.TickCount) MsgBox(ts.ToString())
استبدلنا AddTicks بـ AddMilliseconds
مشكوريين جدا على المساعده