PDA

View Full Version : تشخیص تغییر تاریخ وساعت سیستم در کل زمان اجرای برنامه



PetekDincos
سه شنبه 04 مهر 1391, 08:34 صبح
با سلام
من برای یه کاری به این نیاز دارم که بتونم در زمان اجرای برنامه تشخیص بدم که تاریخ و ساعت سیستم به صورت دستی توسط کاربر تغییر داده شده یا خیر و بتونم یه عملی رو انجام بدم . با تشکر

hakim22
سه شنبه 04 مهر 1391, 18:25 عصر
وقتی برنامه بالا میاد ساعت سیستم رو بگیرید . بعد با استفاده از تایمری که Interval در آن روی 1000 تنظیم شده و هر ثانیه تغییر میکنه اختلاف زمان اول دریافت شده با زمان حال رو در قالب ثانیه دارید. با استفاده از ضرب و تقسم ساده میشه اختلاف زمانی رو با زمان اول همیشه محاسبه کرد.
و شما همیشه این زمانی که خودتون نگاه میدارید با زمان اصلی مقایسه کنید. اگر اخلاف داشت زمان تغییر کرده است.
راه اصولی ترش استفاده از پیامهای ویندوزه . شما باید رویدادهای ویندوز رو بررسی کنید. یکیش TimeChanged است . که ویندوز این پیغام رو به همه ی Proccess ها در حال اجار میفرسته و برنامه ی شما هم اونو دریاف میکنه. با مونیتور کردن این رویداد همیشه میشه بدست آورد آیا زمان تغییر کرده یا نه ( این روش حرفه ای تره اما کاربردشت خیلی زیاده)

ali reza mansoori 2
یک شنبه 07 آبان 1391, 09:49 صبح
دوست عزیز میشه درباره راه دوم یکم بیشتر توضیح بدید
یا لینکی برای استفاده از این پیام ها در برنامه قرار بدید

danialafshari
یک شنبه 07 آبان 1391, 10:49 صبح
سلام دوست عزیز
ببین این سورس بدردت می خوره ؟

hakim22
یک شنبه 07 آبان 1391, 11:30 صبح
یک راهشم میتونه استفاده از EventLog باشه. چه اونی که به عنوان Component هست چه کلاس اصلیش

اما مشکلاتی در زمینه ی اجازه ی دسترسی و Permission ها داره که حتما باید چک کنید.

http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.aspx