PDA

View Full Version : سوال: عدم تغییر در ساعت ویندوز



javadt
جمعه 25 دی 1388, 21:49 عصر
سلام
من می خوام برنامه حضور و غیاب بنویسم که بر اساس ساعت محاسبه می کنه
حالا می خوام کاری کنم که کاربر نتونه تو ساعت ویندوز تغییر ایجاد کنه (ساعت رو ببره جلو)
حالا چطوری می تونم این کار بکنم؟
با تشکر

vbhamed
شنبه 26 دی 1388, 14:48 عصر
سلام

به نظر من بهترين راه اينه كه از يك متخصص الكترونيك بخواي يك سخت افزار واسط ساعت بين پورت سريال و كامپيوتر برات درست كنه و پلمپش كني (مي توني اپوكسي بريزي) و همراه برنامت استفاده كني

با يك AVR يا PIC و يك DS1307 قابل انجام هست
مطمئن ترين راه براي جلوگيري از تغيير ساعت همينه

M.T.P
شنبه 26 دی 1388, 15:16 عصر
سلام
شما از سیستم Client & Server استفاده میکنین؟ اگه اینطوره که ساعت حضور باید بر اساس ساعت Server ثبت بشه وگرنه این نوع شبکه و مدیریت اعضا ایراد داره

javadt
شنبه 26 دی 1388, 17:25 عصر
سلام

به نظر من بهترین راه اینه که از یک متخصص الکترونیک بخوای یک سخت افزار واسط ساعت بین پورت سریال و کامپیوتر برات درست کنه و پلمپش کنی (می تونی اپوکسی بریزی) و همراه برنامت استفاده کنی

با یک AVR یا PIC و یک DS1307 قابل انجام هست
مطمئن ترین راه برای جلوگیری از تغییر ساعت همینه

ااین راه برام مقدور نیست :ناراحت:
اگر راه دیگه می دونید بفرمایید

سلام
شما از سیستم Client & Server استفاده میکنین؟ اگه اینطوره که ساعت حضور باید بر اساس ساعت Server ثبت بشه وگرنه این نوع شبکه و مدیریت اعضا ایراد داره
نه برای یک سیستم می خوام

M.T.P
یک شنبه 27 دی 1388, 11:07 صبح
برنامه Deep Freeze رو نصب کن حالشو ببر
البته این نرم افزار کارش محافظت از تغییر ساعت ویندوز نیست ، این برنامه برای جلوگیری از خذف شدن یا اضافه شدن یه فایل به یک پارتیش مورد استفاده قرار میگیره و در عین حال وقتی رو ساعت ویندوز دابل کلیک کنیم یه پیغام ممنوعیت دسترسی میده!
منتها باید غیر فعالش کنی که پارتیشنات freeze نشه ، یا اینکه یکی از پارتیشن هات مثلا C رو freeze کنی بعد دیتابیست رو تو D نگهداری کنی چون در حالت فعال بودن این برنامه هر بار که ریست کنی تمام تغییرات از بین رفته و پارتیشنت به حالت اولش برمیگرده

javadt
یک شنبه 27 دی 1388, 15:22 عصر
تشکر ولی این راه جالبی نیست

meys34
یک شنبه 27 دی 1388, 18:14 عصر
تشکر ولی این راه جالبی نیست
آره مثل چرخوندن لقمه دور سره
من یه روشی به ذهنم رسید که اونم چرخوندن لقمه دور سره ولی اگه چاره ی دیگه ای نباشه خوب راه بدی نیست
شما می تونید یه برنامه بنویسید که به طور اتوماتیک اجرا بشه و در اولین لحظه زمان سیستم رو بخونه بعد با یه تایمر مثلا با interval=1000 به زمان خونده شده یک واحد اضاف کنه و با زمان سیستم چک کنه اگه اختلافش در حد یکی دو سه ثانیه بود موردی نداره اگه نه زمان سیستم رو به زمان خونده شده + تعداد دفعات اجرا شدن Timer تبدیل کنه:ناراحت::ناراحت::ناراحت:

javadt
یک شنبه 27 دی 1388, 20:16 عصر
از راه رجیستری نمی شه ساعت رو قفل کرد؟
کسی راهش رو می دونه؟

vbhamed
دوشنبه 28 دی 1388, 00:18 صبح
سلام

از راه رجیستری فرضا بشه
کاربر کامپیوتر رو ریست می کنه و از ستاپ اول کامپیوتر عوض می کنه
يا با يك برنامه ديگه رجيستري رو تغيير مي ده
کلا این راههای نرم افزاري کارساز نیست و قابل دور زدنه

javadt
دوشنبه 28 دی 1388, 00:27 صبح
اگر از رجیستری هم بشه برای من قابل قبوله
چون جوری نیست که بتونند تغییر بدن
یعنی کاربرای سیستم کسایی نیستن که بتونن تغییر بدن
فقط می خوام که راحت نتونند ساعت رو تغییر بدن
با تشکر

polisoftco
دوشنبه 28 دی 1388, 00:55 صبح
اگه کاربرانت همین کارمندان دولته ( :گیج: )، اینا که تو همون کارت زدن مشکل دارن چه برسه به تغییر دادن تایمشون. بهتره همون فریز کنی که هم راحت تره هم سیستمت تمیزتر میمونه.
وگرنه ... :متفکر:

javadt
دوشنبه 28 دی 1388, 10:09 صبح
خوب مثلا 10 سیستم باشه که من بخوام روش نصب کنم
هم زمان بر هست و هم لازم نیست
الان همین نرم افزار چطوری ساعت رو قفل می کنه؟

M.T.P
دوشنبه 28 دی 1388, 19:05 عصر
خب ببین جواد جون الان حرفت دوتا شد!! تو پست قبلی نوشتی واسه یه سیستم میخوام خب بنده هم deep freeze رو پیشنهاد کردم ، اما حالا نوشتی که مثلا 10 سیستم!!!
خب وقتی 10 تا سیستم باشه باید عنایت کنی یه سیستم دیگه اضافه کنی به عنوان Server بعد از روش Client & Server استفاده کنی که اونوقت همه چی حل میشه
موفق باشی:چشمک:

Dr.Bronx
دوشنبه 28 دی 1388, 19:51 عصر
خوب
حالا یک کاری انجام بده ببین جواب میده

Start > Control Panel > Administrative Templates
http://barnamenevis.org/forum/attachment.php?attachmentid=42743&stc=1&d=1264088194
Local Security Policy
http://barnamenevis.org/forum/attachment.php?attachmentid=42744&stc=1&d=1264088194
Local Policy > User Rights Assignments > Change the System time
http://barnamenevis.org/forum/attachment.php?attachmentid=42745&stc=1&d=1264088194
بعد گروه هایی که توی تصویر زیر هست رو بردار
http://barnamenevis.org/forum/attachment.php?attachmentid=42746&stc=1&d=1264088194

فکر کنم اینجوری دیگه نشه ساعت رو تغییر داد
موفق و موید باشید

polisoftco
دوشنبه 28 دی 1388, 20:20 عصر
خب حالا بالفرض یارو کارمنده (!!!!!! :گیج: احتمال 1%) یکم کامپیوتر بلد بود و این روشه ادمین رو بلد باشه، اونوقت با اضافه کردن یک یوزر و گرووپ راحت میشه تایم رو دستکاری کرد که.

اما احتمال اینکه دستکاریش کنه خیلی کمه (به دلایلی که همون پست بالا عرض کردم)

javadt
دوشنبه 28 دی 1388, 21:15 عصر
خوب
حالا یک کاری انجام بده ببین جواب میده

Start > Control Panel > Administrative Templates
http://barnamenevis.org/forum/attachment.php?attachmentid=42743&stc=1&d=1264088194
Local Security Policy
http://barnamenevis.org/forum/attachment.php?attachmentid=42744&stc=1&d=1264088194
Local Policy > User Rights Assignments > Change the System time
http://barnamenevis.org/forum/attachment.php?attachmentid=42745&stc=1&d=1264088194
بعد گروه هایی که توی تصویر زیر هست رو بردار
http://barnamenevis.org/forum/attachment.php?attachmentid=42746&stc=1&d=1264088194

فکر کنم اینجوری دیگه نشه ساعت رو تغییر داد
موفق و موید باشید

تشکر
اما این روشی رو که گفتید تست کردم اما جواب نداد


خب حالا بالفرض یارو کارمنده (!!!!!! :گیج: احتمال 1%) یکم کامپیوتر بلد بود و این روشه ادمین رو بلد باشه، اونوقت با اضافه کردن یک یوزر و گرووپ راحت میشه تایم رو دستکاری کرد که.

اما احتمال اینکه دستکاریش کنه خیلی کمه (به دلایلی که همون پست بالا عرض کردم)

درسته می گید شما
احتمالا مجبور می شم از همون روش استفاده کنم

M.T.P
دوشنبه 28 دی 1388, 21:37 عصر
برو deep Freeze رو نصب کن حالتو بکن!
منتها نصب کردی ریست شد اومد بالا Shift رو بگیر روش دابل کلیک کن از لیست گزینه Boot Thawed رو انتخاب کن بعد ریست و حــــــــــــــــــــــــ ـــــــــــــــــــــــال :قهقهه:

javadt
دوشنبه 28 دی 1388, 22:11 عصر
برو deep Freeze رو نصب کن حالتو بکن!
منتها نصب کردی ریست شد اومد بالا Shift رو بگیر روش دابل کلیک کن از لیست گزینه Boot Thawed رو انتخاب کن بعد ریست و حــــــــــــــــــــــــ ـــــــــــــــــــــــال :قهقهه:
این کار برای چی هست؟

vbhamed
سه شنبه 29 دی 1388, 00:15 صبح
سلام

خب حالا اگر كاربر از تو ستاپ اول كامپيوتر ساعت رو عوض كرد چي ؟
اگه با يك س دي يا فلش bootable بالا اومد و با سيستم عامل داس عوض كرد چي ؟
اصلا اگر يكي يه برنامه با همين ويژوال بيسيك خودمون گير آورد كه عوض كنه چي، هر كسي هم بخواد همه بهش همچين برنامه اي رو مي دن !!!

polisoftco
سه شنبه 29 دی 1388, 00:30 صبح
خب خود آقا جواد گفتن که همین راه نرم افزاریشم باشه کافیه، پس حتما کسایی که میخان استفاده کنن زیاد کامپیوتری نیستن دیگه.



خب حالا اگر کاربر از تو ستاپ اول کامپیوتر ساعت رو عوض کرد چی ؟
اگه با یک س دی یا فلش bootable بالا اومد و با سیستم عامل داس عوض کرد چی ؟
اصلا اگر یکی یه برنامه با همین ویژوال بیسیک خودمون گیر آورد که عوض کنه چی، هر کسی هم بخواد همه بهش همچین برنامه ای رو می دن !!!

روش هایی که شما واسه دور زدن گفتین مال افراد مخ هستش.

javadt
سه شنبه 29 دی 1388, 01:38 صبح
سلام

خب حالا اگر کاربر از تو ستاپ اول کامپیوتر ساعت رو عوض کرد چی ؟
اگه با یک س دی یا فلش bootable بالا اومد و با سیستم عامل داس عوض کرد چی ؟
اصلا اگر یکی یه برنامه با همین ویژوال بیسیک خودمون گیر آورد که عوض کنه چی، هر کسی هم بخواد همه بهش همچین برنامه ای رو می دن !!!

خوب یعنی شما می گید چی کار کنم؟
چی پیشنهاد می کنید؟

vbhamed
سه شنبه 29 دی 1388, 11:53 صبح
سلام

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

البته اگر به اينترنت متصل باشيد و موقع خوندن كارت بتونيد ساعت رو از ساعتهاي اتمي اينترنتي بگيريد مشكل حله، مثل ساعت ويندوز
ولي خب ممكنه يكم كند هم بشه

M.T.P
سه شنبه 29 دی 1388, 14:00 عصر
یه کار کنید دو کار بیرزه!!!!!
یه listbox بزارین تو برنامه تون که هر یک دقیقه یکبار Time رو تو لیست Add کنه ، اولین کاربر خاطی که بخواد ساعتو بکشه عقب و ورود رو ثبت کنه با توجه به زمان ورود این از خدا بی خبر مچش رو میگیرید و با اردنگی میندازید بیرون.
البته به شرطی که یه رویداد ورود هم تو لیست Add بشه ، مثلا آخرین گزینه تو لیست هست 12:00 بعد آقای X که ورود میزنه برنامه تو لیست add کنه User:X 11:30 یعنی نیم ساعت تقلب و سریع ساعت رو میبره سر جاش و بعد برنامه ساعت 12:01 رو تو لیست اضافه میکنه و آقای X میگه وااااااااااای مـــــــــــــادر جان
حالشو ببرین...
راه جالبی بود نه؟!!!!!!:قهقهه::قهقهه::قهقهه:


Persianloord@Gmail.com (Persianloord@Gmail.com)

Dr.Bronx
سه شنبه 29 دی 1388, 14:26 عصر
حالا اگر من ساعت رو کشیدم عقب و 1 دقیقه صبر کردم و بعدش کارت زدم چی میشه ؟

M.T.P
سه شنبه 29 دی 1388, 14:34 عصر
فرضا برنامه میزنه 12:00 بعد شما یه ساعت میکشی عقب یک دقیقه صبر میکنی ... برنامه میزنه 11:01 در این موقع شما کارت رو میزنی برنامه میزنه User:Dr.Bronx 11:01 بعد ساعت رو میبری سر جاش برنامه میزنه 12:02 بعد باید فکر دررو باشی:قهقهه::قهقهه::قهقهه:

vbhamed
سه شنبه 29 دی 1388, 17:28 عصر
سلام

اگر بخوایم یخورده تكمیل ترش كنیم این كارها رو می كنیم

خاصیت Sorted لیست رو True كنید و تو رویداد تایمر ساعت ها رو طوری به listbox اضافه كنید كه بتونن مرتب رشته ای ولی طبق اعداد بشن (مثلا 0245 یعنی 2 و 45 دقیقه یا 1001 یعنی 10 و 1 دقیقه)

حالا موقع اضافه كردن به لیست باكس آخرین گزینه رو چك كنید كه اختلاف زیادی با زمان فعلی نداشته باشه مثلا در حد 1 دقیقه + چند ثانیه بالا پایین مجازه (چون قراره 1 دقیقه 1 دقیقه اضافه بشه) اگر اختلاف داشت ساعت رو اصلاح كنید
ضمنا در نظر بگیرید كه بعد از ساعت 1159 ساعت 0000 هست و این صحیح می باشد

اینطوری هیچ موقع عدد نامربوط در لیست اضافه نمیشه
برای كاربرای معمولی شاید همین كفایت كنه

اما اگر كسی یك برنامه exe با كد زیر داشته باشه می تونه هر موقع بخواد ساعت رو فریز كنه كه البته این كار همدست می خواد
مثلا دوستش ساعت 8 برنامه زیر رو اجرا كنه تا آقا ساعت 8:30 تشریف بیارن بعدش برنامه رو ببنده !


Dim x
x = Time

Do
Time = x
DoEvents
Loop

mansour01
پنج شنبه 01 بهمن 1388, 06:54 صبح
نمی دونم دقیقا فهمیدم شما از این برنامه چی میخواید یا نه ، ولی بطور کل این احتمال رو هم بدید که تاریخ رو هم شخص عوض کنه ، برنامه چه کانفلیگی ایجاد میکنه !
ضمن اینکه می تونه تنظیمات بایوس رو هم ریست کنه !
راه حل هایی که به ذهن من میرسه :
1. گذاشتن پسورد رو تنظیمات بایوس
2. تهن ها بوت شدن سیستم از روی هارد
3. بستن دسترسی کاربر به تنظیمات ساعت داخلی ویندوز
4. چک کردن داخلی برنامه که اگر بعد از به عنوان مثال یک دقیقه ساعت ویندوز تغییری نکرد سیستم قفل بشه که مسلما کاربر مجبور میشه بیاد پیش شما و البته لاگ کردن تمام این تغییرات
5. ثبت ساعت کاری و بطور مثال اگر طرف 8:30 بیاد و شروع به کار کنه و از اونور هم بخواد به جای 12 ، ساعت 11:30 بره این خودش مشکل داره .
و مسلما اینها به همراه پیشنهادات سایر بچه ها !

lordarma
پنج شنبه 01 بهمن 1388, 11:02 صبح
شاید لازمه برای این کار یک برنامه اختصاصی بنویسی؟
من خودم بلد نیستم اما اینجوری به ذهنم می رسد...
اول کدی بنویس که از طریق رجیستری آیکون Data and Time رو از کنترل پنل حذف کند ، سپس کدی بنویس که وظیفه آن این باشد که تیک Show the Clock رو برای همیشه از قسمت تنظیمات Taskbar بردارد.
این راهی که گفتم شبیه یک نوع ویروس عمل می کند ولی فکر می کنم جواب بدهد...

vbhamed
یک شنبه 11 بهمن 1388, 03:03 صبح
سلام

يك راه ديگه هم شايد بشه
يك تابع API داريم به نام GetTickCount
اين تابع زمان گذشته از شروع ويندوز رو بر حسب ثانيه با دقت چند رقم اعشار بر مي‌گردونه

حالا اگر برنامه شما در Startup ويندوز بتونه ساعت رو جايي ثبت كنه و مقدار زمان گذشته از اجراي ويندوز رو به اون اضافه كنه، مي تونيد متوجه تغيير احتمالي ساعت بشيد

البته اگر كسي واقعا ساعتش درست نباشه و بخواد درستش كنه بايد ويندوز ريست بشه
ولي همونطور كه يكي از دوستان هم گفتن اگر كسي تاريخ رو تغيير بده چي ؟
با اين روش مي تونيد تاريخ رو هم ثبت كنيد و چك كنيد ولي مسئله اينه كه كليه اين راههاي نرم افزاري در نهايت و نسبتا به راحتي قابل دور زدن هست