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

منع الوصول لمحرك معين

بدأه hghghg في 15 مارس 2008 · 3 رد · 879 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيف يمكننا بالاكسس أخفاء محرك الأقراص d أو ال e مثلاً برمجيا مستخدما الوصول الى الرجيسترى وتغيرر القيمة العشرية من الصفر الى 24 مثلاً لأخفاء المحركين السابقين

شكراً مقدماً للمساعده

#2

اخي الفاضل جمال فايز

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

يمكن اخفاء وإظهار محركات الأقراص المطلوبه برمجيا بواسطة الكود حسب الطريقة التالية :

1. نحتاج الى عدد 2 ملفات ريجستري تكون من ضمن مجلد القاعدة

ملف الريجستري الأول خاص بإخفاء محركات الأقراص المطلوبه وهي هنا D و E

حيث محركات الأقراص تأخذ القيم التالية :

محرك الأقراص A يأخذ القيمة 1

محرك الأقراص B يأخذ القيمة 2

محرك الأقراص C يأخذ القيمة 4

محرك الأقراص D يأخذ القيمة 8

محرك الأقراص E يأخذ القيمة 16

محرك الأقراص F يأخذ القيمة 32

محرك الأقراص G يأخذ القيمة 64

محرك الأقراص H يأخذ القيمة 128

محرك الأقراص I يأخذ القيمة 256

محرك الأقراص J يأخذ القيمة 512

محرك الأقراص K يأخذ القيمة 1024

محرك الأقراص L يأخذ القيمة 2048

محرك الأقراص M يأخذ القيمة 4096

محرك الأقراص N يأخذ القيمة 8192

محرك الأقراص O يأخذ القيمة 16384

محرك الأقراص P يأخذ القيمة 32768

محرك الأقراص Q يأخذ القيمة 65536

محرك الأقراص R يأخذ القيمة 131072

محرك الأقراص S يأخذ القيمة 262144

محرك الأقراص T يأخذ القيمة 524288

محرك الأقراص U يأخذ القيمة 1048576

محرك الأقراص V يأخذ القيمة 2097152

محرك الأقراص W يأخذ القيمة 4194304

محرك الأقراص X يأخذ القيمة 8388608

محرك الأقراص Y يأخذ القيمة 16777216

محرك الأقراص Z يأخذ القيمة 33554432

جميع محركات الأقراص تأخذ القيمه 67108863

نريد الآن اخفاء المحركين D و E فيتم ذلك بجمع قيم المحركين وهما 8 + 16 وسيكون الناتج هو 24

2. نضغط من الويندوز على ابدا Start

ثم نختار تشغيل Run

ثم نكتب في الصندوق هذا الأمر RegEdit ثم موافق

post-15367-1205627407_thumb.jpg

وسيظهر لنا محرر الريجستري

نقوم بتتبع المفاتيح حتى نصل الى المستعرض Explorer

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

]

post-15367-1205627444_thumb.jpg

3. نقوم بإنشاء مفتاح جديد من نوع DWORD وذلك بالضغط بالماوس الأيمن على النافذة البيضاء ونختار جديد ثم نختار قيمة DWORD ونعطيه الإسم NoDrives

post-15367-1205627507_thumb.jpg

لو تلاحظ القيمة للمفتاح ستجد انها صفر بمعنى ان جميع محركات الأقراص ظاهره .

لذا سوف نقوم بحفظ هذا الملف بإسم EnabledDrives-DE.reg من خلال الضغط بالماوس الأيمن على المجلد Explorer ثم نختار تصدير ونحفظ الملف في اي مكان وليكن مثلا المجلد HideDrives .

نقوم الآن بالضغط مرتين على المفتاح NoDrives ونختار الخيار " عشري " ثم نكتب حاصل جمع قيمتي محركات الأقراص D و E وهي 24 ثم نضغط موافق

post-15367-1205627554_thumb.jpg

نقوم الآن بحفظ هذا الملف بإسم DisableDrives-DE.reg كما فعلنا سابقا وذلك بتصديره الى نفس المجلد السابق وهذا يعني انه اذا كانت القيمة هي 24 يعني اخفاء محركات الأقراص D و E

الان اصبح لدينا ملفين جاهزين واحد لإظهار محركات الأقراص والآخر لإخفاءها

نقوم الان بعمل قاعدة بيانات ونضع بها زرين أمر واحد للإظهار والآخر للإخفاء

في حدث النقر على زر الأمر اخفاء نضع هذا الكود

Call Shell("regedit.exe /s """ & CurrentProject.Path & "\DisableDrives-DE.reg""", 0)

وفي حدث عند النقر على زر الأمر اظهار نضع هذا الكود

Call Shell("regedit.exe /s """ & CurrentProject.Path & "\EnabledDrives-DE.reg""", 0)

نلاحظ في الكودين انهما يستدعيان ملفات الريجستري الموجودين في نفس قاعدة البيانات مع التنفيذ مباشرة بدون ان تظهر لنا اي رسالة بذلك من خلال المعامل s/

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

الويندوز ثم الدخول من جديد من خلال الكود الخاص بذلك

Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long



Private Sub Disable_Click()
'E و  D  هذا الكود خاص بإخفاء محركات الأقراص
Call Shell("regedit.exe /s """ & CurrentProject.Path & "\DisableDrives-DE.reg""", 0)
ret& = ExitWindowsEx(EWX_LOGOFF, 0)
DoCmd.Quit
End Sub

'E و  D  هذا الكود خاص بلإظهار محركات الأقراص
Private Sub Remove_Click()
Call Shell("regedit.exe /s """ & CurrentProject.Path & "\EnabledDrives-DE.reg""", 0)
ret& = ExitWindowsEx(EWX_LOGOFF, 0)
DoCmd.Quit
End Sub

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

معلومه : بإمكانك اخفاء اي محرك اقراص او مجموعة من محركات الأقراص او حتى كل محركات الأقراص حيب الطريقة المشروحه اعلاه

وهذا هو البرنامج الخاص بإخفاء واظهار محركات الأقراص D و E مع ملفي الريجستري الخاصة بذلك في مجلد zaHideDrives

post-15367-1205627693_thumb.jpg

zaHideDrives.rar

#3

شكراً أختنا الغالية زهره على هذا الشرح الوافى والجميل والمفيد

جعلكم الله دائماً قائداً ومرشداً صالحاً...

#4

بسم الله الرحمن الرحيم

بارك الله فيكم اخواني

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