PDA

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



علیرضا5
جمعه 09 مرداد 1394, 10:09 صبح
با سلام خدمت همه دوستان و اساتید محترم
برنامه ای نوشتم که می خوام فقط در یک ساعات مشخصی در روز مثلا 17 تا 20 قابلیت اجرا رو داشته باشه
خوب با استفاده از ساعت سیستم میشه اینکار رو کرد ولی میدونید که کاربر به راحتی با تغییر ساعت سیستم برنامه رو دور میزنه
می خوام بدونم چطور میشه کاری کرد که امکان تغییر ساعت و تاریخ ویندوز از کاربر گرفته بشه
همچنین برگشت به حالت اولیه هم طبیعتا لازمه دیگه

لطفا اگر کسی ایده بهتری برای این سوال داره ارائه بده

vbhamed
جمعه 09 مرداد 1394, 10:18 صبح
سلام
برای سیستم راهی نداره چون نهایتا از توی بایوس سیستم تغییر میده

راه اول :
از ساعتهای اینترنتی استفاده کنید (قاعدتا نیاز به اینترنت داره)

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

علیرضا5
شنبه 10 مرداد 1394, 14:34 عصر
با تشکر از جوابتون
در مورد راه اول و دوم برنامه من قراره آفلاین اجرابشه و ضمن اینکه از سخت افزار هم چیزی سر در نمیارم
اما اینکه فرمودید **** بایوس ***** این چی هست
در ضمن مخاطبین برنامه من حرفه ای نیستند بنابراین اگه فقط بتونم به صورت ابتدایی دسترسی اونها رو محدود کنم کفایت میکنه

vbhamed
شنبه 10 مرداد 1394, 18:25 عصر
سلام
همون اول که سیستم رو روشن می‌کنید می‌تونید با فشردن معمولا کلید Delete یا F2 یا ... وارد ستاپ سیستم یا تنظیمات بایوس بشوید

علیرضا5
شنبه 10 مرداد 1394, 18:40 عصر
ممنون فهمیدم بایوس چیه
می خوام بدونم آیا با کد نویسی امکان ایجاد محدودیت روی سیستم کاربر وجود داره
مثلا فقط در این حد که اگه روی ساعت و تاریخ که در پایین دسکتاپ وجود داره کلیک کرد نتونه تغییری ایجاد بکنه

vbhamed
چهارشنبه 14 مرداد 1394, 08:10 صبح
سلام
این لینک رو ببینید

http://www.sevenforums.com/tutorials/113557-date-time-allow-prevent-users-groups-changing.html

برای این کار باید کلید رجیستری مربوط به کار بالا رو پیدا کنید و تغییرش بدید

اینم ببینید

http://www.sevenforums.com/tutorials/151415-group-policy-apply-specific-user-group.html

علیرضا5
چهارشنبه 14 مرداد 1394, 18:28 عصر
حامد جان با تشکر از توجهتون
متاسفانه چیزی متوجه نشدم

ضمنا اگه ممکنه نحوه بدست آوردن تاریخ و ساعت از اینترنت رو هم توضیح بدید

vbhamed
پنج شنبه 15 مرداد 1394, 09:22 صبح
سلام
تو این دو تا سایت با استفاده از Group Policy Editor ویندوز دسترسی کاربر به تغییر ساعت و تاریخ ویندوز محدود میشه
تو لینک دوم هم یک فایل ایجاد می‌کنه که با اجرای اون این تغییرات در ویندوز اعمال میشه
حالا کافیه شما اون فایل رو تو برنامتون اجرا کنید

علیرضا5
چهارشنبه 21 مرداد 1394, 00:38 صبح
Group Policy Editor چی هست ؟ از کجا میشه پیداش کرد ؟
خیلی ممنون ولی اگه میشه واضح تر توضیح بدید یا اگه به صورت سورس باشه که بهتر

vbhamed
چهارشنبه 21 مرداد 1394, 05:56 صبح
سلام
در Run ویندوز ( Win + R ) تایپ کنید gpedit.msc و Enter را بزنید.

علیرضا5
چهارشنبه 21 مرداد 1394, 13:24 عصر
خطا میده
اینم عکس خطا

علیرضا5
پنج شنبه 05 شهریور 1394, 07:13 صبح
این کد رو در یک ماژول کپی کنید



Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const REG_SZ = 1
Public Const REG_DWORD = 4
Public Const REG_NONE = 0
Public Const REG_MULTI_SZ = 7
Public Const REG_EXPAND_SZ = 2
Public Const REG_BINARY = 3
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long


برای غیر فعال کردن

Private Sub Command1_Click()
Dim keyhand As Long
Dim r As Long
r = RegCreateKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies \Explorer", keyhand)
r = RegSetValueEx(keyhand, "NoControlPanel", 0, REG_DWORD, 1, 4)
r = RegCloseKey(keyhand)
End Sub


برای فعال کردن

Private Sub Command1_Click()
Dim keyhand As Long
Dim r As Long
r = RegCreateKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies \Explorer", keyhand)
r = RegSetValueEx(keyhand, "NoControlPanel", 0, REG_DWORD, 0, 4)
r = RegCloseKey(keyhand)
End Sub


موفق باشید

alirezabahrami
پنج شنبه 05 شهریور 1394, 09:58 صبح
سلام آقاعلیرضا !
بابکار بردن این کدها هم تغییر ساعات سیستم عملی است. یا بصورت دستی و یا از طریق همین کدها
این روش شاید برای زمانی که برنامه در حال اجرا ء است جوابگو باشد ؛ ولی بنظر شما نمیتوان برنامه را از حالت اجراء خارج نمود و دستی و یا در برنامه ای دیگر و از طریق کد فعال نمودن ، ساعت سیستم را تغییر داد ؟
بنظربنده ابتدا ء شما باید در دیتابیس برنامه یک جدول با دو فیلد تاریخ جاری و تاریخ انقضاء ایجاد کنید
در مرحله بعد یک فرم برای تعیین تاریخ انقضاء برنامه اختصاص بده و از طریق آن فرم تاریخ انقضاء و همچنین تاریخ جاری را بصورت کد شده در فیلدهای جدول مربوطه وارد کن
درمرحله بعدی کد چک کردن تاریخ انقضاء برنامه را باتاریخ جاری در فرم استارت آپ برنامه قرار داده میشود و ...........
یا علی

علیرضا5
پنج شنبه 05 شهریور 1394, 20:33 عصر
درود بر آقای بهرامی



این روش شاید برای زمانی که برنامه در حال اجرا ء است جوابگو باشد ؛ ولی بنظر شما نمیتوان برنامه را از حالت اجراء خارج نمود و دستی و یا در برنامه ای دیگر و از طریق کد فعال نمودن ، ساعت سیستم را تغییر داد ؟

بزرگوار وقتی که کاربر از برنامه خارج میشه فقط به دو صورت میتونه ساعت و تاریخ رو تغییر بده و راه دیگه ای هم نداره
1- از طریق بایوس ویندوز که واقعا هیچ کاریش نمیشه کرد مگر همون که دوستمون آقا حامد گفتن که از قفل سخت افزاری استفاده بشه پس بنابراین فکر نکنم راه بهتری وجود داشته باشه
2- از طریق رجیستری که اون هم راه داره و میشه با یه خورده کد اضافه کردن به این کدها رجیستری رو هم از دسترس کاربر خارج کنیم
اما اینکه فرمودید از طریق کد نویسی یا از طریق برنامه ای دیگه این کار انجام میشه باید عرض کنم که آیا کسی میتونه جلوی چنین حالتی رو بگیره بله مسلما شما از هر طریقی اینکار و انجام بدید از طریق کد نویسی قابل دور زدنه




نظربنده ابتدا ء شما باید در دیتابیس برنامه یک جدول با دو فیلد تاریخ جاری و تاریخ انقضاء ایجاد کنید

من منظورتونو دقیق نفهمیدم من که توی این تایپک دنبال تاریخ انقضا برای برنامه نبودم لطفا پست ابتدای تایپک رو با دقت بخونید
موفق باشید

vbhamed
جمعه 06 شهریور 1394, 09:37 صبح
سلام
البته برای بایوس میشه پسورد گذاشت ولی اگر بوت از روی سی دی یا فلش باز باشه طرف می‌تونه یه سی دی بوتیبل بزاره و از تو محیط Command Prompt و ... تاریخ رو عوض کنه

تازه به اینها حالت Safe mode و Command Prompt ویندوز رو هم اضافه کنید که به راحتی در دسترسه !