منتديات روكشا     َولَوْلَا إِذْ دَخَلْتَ جَنَّتَكَ قُلْتَ مَا شَاءَ اللَّهُ لَا قُوَّةَ إِلَّا بِاللَّه

الرئيسية |  التسجيل  |  مركز رفع الملفات  |  الاتصال بنا  

 



العودة   منتديات روكشا > المنتدي التخصصي > قسم التصاميم والبرمجة والجرافيكس والميديا > انشاء وتصميم وبرمجة البرامج

الملاحظات

انشاء وتصميم وبرمجة البرامج برنامج الوورد اكسس اكسيل بوربوينت فيجوال بيسك برامج محاسبة برامج ادارة وتنظيم حسابات تنسيق الملفات

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 12-09-2018, 01:08 PM

الصورة الرمزية ابن الوليد

ابن الوليد

.:: ادارة المنتدي ::.

 
تاريخ التسجيل: Nov 2018
الدولة: مصر
المشاركات: 1,628
معدل تقييم المستوى: 10
ابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud ofابن الوليد has much to be proud of
إرسال رسالة عبر MSN إلى ابن الوليد إرسال رسالة عبر Yahoo إلى ابن الوليد إرسال رسالة عبر Skype إلى ابن الوليدابن الوليد غير متواجد حالياً
Post الشرح الكامل التفصيلي المصور لمعرفة نسخة الأكسيس وتخفيض الأمان برمجيا

 

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


سنقوم بشرح آلية عمل برنامج تخفيض مستوى الأمان في جميع نسخ برنامج الأكسيس برمجيا وبدون اي ملفات اضافية وسيكون ذلك عن طريق الأكواد فقط
نبذه عن نسخ برنامج الأكسيس
كلنا يعلم ان اي نسخة من برنامج الأكسيس لها رقم خاص يميزها عن غيرها من النسخ فمثلا :
نسخة الأكسيس 97 نجد انها تأخذ الرقم 8.0
نسخة الأكسيس 2000 نجد انها تأخذ الرقم 9.0
نسخة الأكسيس 2002 وهي نسخة الـ XP نجد انها تأخذ الرقم 10.0
نسخة الأكسيس 2003 نجد انها تأخذ الرقم 11.0
نسخة الأكسيس 2007 نجد انها تأخذ الرقم 12.0
كيف تتعرف على نسخ الأكسيس الموجوده لديك
كل ما عليك هو اتباع هذه الطريقة :
1. من الويندوز اضغط على ابدأ
2. اختر تشغيل واكتب فيه RegEdit

اتبع المسار التالي حتى تصل الى المجلد Office


كود بلغة HTML:
HKEY_CURRENT_USER\Software\Microsoft\Office


وستجد جميع ارقام نسخ الأكسيس المثبته على جهازك



بعد ان عرفنا ارقام نسخ الأكسيس والمسار الخاص بها نريد ان يقوم الكود برمجيا بمعرفة النسخة التي تم فتحها . لهذا سوف نستخدم هذه الوظيفة سواء في وحدة نمطية جديده او توضع مباشرة في الـ VBA ( محرر الفيجول بيسك للتطبيقات ) للنموذج ومن ثم استدعاؤها .

كود معرفة نسخة الأكسيس المستخدمة حاليا
كود بلغة HTML:
Function GetVersion() As String    GetVersion = SysCmd(acSysCmdAccessVer)End Function

تخفيض أمان برنامج الأكسيس
الغرض
كلنا يقوم بتصميم برامج سواء كانت خاصة او لأغراض ربحيه ولكن احيانا يواجه المستخدمين الذين ليس لهم دراية او معرفة مسبقه بطريقة تخفيض امان الأكسيس ولهذا تظهر لهم بين الحين والآخر الرسائل المزعجة الخاصة بتحذيرات امان الأكسيس لهذا سنقوم بكتابة وظيفة مهمتها تخفيض أمان برنامج الأكسيس الذي يعمل وقت فتح البرنامج وتتم هذه العملية لمرة واحده فقط ومن بعدها سوف يستمر برنامج الأكسيس منخفضا امانه مهما فتحت من قواعد بيانات .
الطريقة العادية لتخفيض أمان برنامج الأكسيس
لتخفيض أمان برنامج الأكسيس من النسخة 97 وحتى النسخة 2003 فهو بإتباع هذه الطريقة :
1. الذهاب الى اشرطة قوائم الأكسيس
2. ثم اختيار ادوات
3. ثم اختيار ماكرو
4. ثم اختيار الأمان


ومن ثم وضع الإشارة على الإختيار الأخير وهو " منخفض " ثم موافق




اما في برنامج الأكسيس 2007 فيتم خفض الأمان يدويا بهذه الطريقة
1. الذهاب للقائمة الرئيسية واختيار خيارات الأكسيس .






2. من الخيارات اختر مركز التوثيق ثم اختر اعدادات مركز التوثيق .






3. اختر اعدادات الماكرو ثم ضع الأختيار على اخر اختيار وهو " تمكين كافة وحدات الماكرو "






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

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



جميع النسخ من 97 وحتى 2003 تأخذ هذا المسار مع اختلاف الرقم في نسخة الأكسيس وهي هنا رقم 11.0 وتعني نسخة اكسيس 2003
للمستخدم هو:
كود بلغة HTML:
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security]
وللنظام هو :


كود بلغة HTML:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Access\Security]

وسنجد ان المفتاح الفرعي لها جميعا بعد تخفيض الأمان يدويا هو
كود بلغة HTML:
"Level"=dword:00000001
اما في الأكسيس 2007 فالوضع مختلف قليلا
كود بلغة HTML:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Access\Security]
حيث يكون المفتاح الفرعي له كالتالي فقط
كود:
"VBAWarnings"=dword:00000001
وظيفة SaveRegLong حفظ قيمة في الريجستري عبر مفتاح فرعي من نوع Dword

كود:
 Option Compare Database
 Option Explicit

Enum RegHive HKEY_CLASSES_ROOT = &H80000000
HK_CR = &H80000000 HKEY_CURRENT_USER = &H80000001 HK_CU = &H80000001 HKEY_LOCAL_MACHINE = &H80000002 HK_LM = &H80000002 HKEY_USERS = &H80000003 HK_US = &H80000003 HKEY_CURRENT_CONFIG = &H80000005 HK_CC = &H80000005 HKEY_DYN_DATA = &H80000006
كود:
     HK_DD = &H80000006
End Enum

Enum RegType REG_SZ = 1 REG_BINARY = 3 REG_DWORD = 4 End Enum Public Const ERROR_SUCCESS = 0& Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long 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 RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName 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 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 RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long Public Function CreateRegKey(hKey As RegHive, strPath As String) Dim hCurKey As Long Dim lRegResult As Long lRegResult = RegCreateKey(hKey, strPath, hCurKey) If lRegResult <> ERROR_SUCCESS Then 'there is a problem End If lRegResult = RegCloseKey(hCurKey) End Function Public Function SaveRegLong(ByVal hKey As RegHive, ByVal strPath As String, ByVal strValue As String, ByVal lData As Long) Dim hCurKey As Long Dim lRegResult As Long lRegResult = RegCreateKey(hKey, strPath, hCurKey) lRegResult = RegSetValueEx(hCurKey, strValue, 0&, REG_DWORD, lData, 4) If lRegResult <> ERROR_SUCCESS Then End If lRegResult = RegCloseKey(hCurKey) End Function


سنقوم الآن بإستدعاء هذه الوظيفة من خلال الكود الموجود في حدث عند عداد الوقت لنموذج الشاشة الإفتتاحية للبرنامج وسيكون لجميع نسخ الأكسيس بهذه الطريقة


كود:
Private Sub Form_Timer()
Dim Version As String
Dim strVer As String
Dim strValueM As String
Dim strValueU As String
Version = GetVersion()
If Version = "8.0" Then
strValueM = SaveRegLong(HKEY_LOCAL_MACHINE, "Software\Microsoft\Office\8.0\Access\Security", "Level", 1)
strValueU = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\8.0\Access\Security", "Level", 1)
ElseIf Version = "9.0" Then
strValueM = SaveRegLong(HKEY_LOCAL_MACHINE, "Software\Microsoft\Office\9.0\Access\Security", "Level", 1)
strValueU = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\9.0\Access\Security", "Level", 1)
ElseIf Version = "10.0" Then
strValueM = SaveRegLong(HKEY_LOCAL_MACHINE, "Software\Microsoft\Office\10.0\Access\Security", "Level", 1)
strValueU = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\10.0\Access\Security", "Level", 1)
ElseIf Version = "11.0" Then
strValueM = SaveRegLong(HKEY_LOCAL_MACHINE, "Software\Microsoft\Office\11.0\Access\Security", "Level", 1)
strValueU = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\11.0\Access\Security", "Level", 1)
ElseIf Version = "12.0" Then
strValueU = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\12.0\Access\Security", "VBAWarnings", 1)
End If
DoCmd.Close
DoCmd.OpenForm "form"
End Sub



حيث ان الوظيفة الإساسية SaveRegLong تأخذ هذه القيم


كود:
 SaveRegLong(hKey,strPath,strValue,lData)


حيث hKey يمثل نوع المفتاح الرئيسي وهو اما HKEY_LOCAL_MACHINE او HKEY_CURRENT_USER
strPath يمثل المسار كاملا للمفتاح الفرعي Software\Microsoft\Office\11.0\Access\Security
strValue اسم المفتاح وهو في الأكسيس من 97 الى 2003 يكون Level اما في الأكسيس 2007 فيكون VBAWarnings
lData هي القيمة المطلوب كتابتها لهذا المفتاح وهي في جميع النسخ الرقم 1
نهاية الشرح
بعد تنفيذ هذه الخطوات ووضعها في اي قاعدة بيانات نرغب في تخفيض الأمان لبرنامج الأكسيس سنجد ان الكود سيقوم بهذه الخطوات في الخفاء بدون ان يشعر المستخدم وبدون اي تدخل منه.
بإمكانك تجربة وضع أمان الأكسيس يدويا على عالي او متوسط ثم تشغيل البرنامج وستجد ان البرنامج بعد هذه الخطوات سيقوم بتخفيض الأمان الى اقل ما يمكن ولجميع نسخ الأكسيس بدون استثناء عندما يتم فتح البرنامج حسب النسخة المطلوبه فقد يفتح شخص ما البرنامج بواسطة اكسيس 2007 وآخر بواسطة أكسيس 2003 وهكذا سنجد ان البرنامج سيتعرف اولا على رقم نسخة الأكسيس ومن ثم يقوم يقوم بتخفيض الأمان لها مباشرة خلال اقل من جزء من الثانية .
وهذا هو البرنامج كاملا ( والكمال لله وحده ) .

zaAllAccesVersionAndSecurityLowLevel_Pro.rar
ختاما لكم مني خالص الشكر والتقدير
__________________
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
هاك هاك الرد السريع الكامل للنسخة 3.8.0 ابن الوليد ركن تطوير وإدارة المنتديات العربية 0 12-23-2018 08:04 PM
شرح الحديث الشريف - الشرح المختصر - الدرس ( 122 - 207 ) : من حفظ عشر آيات من أول سورة الكهف عصم من الدجال. ابن الوليد المنتدي الاسلامي 0 12-17-2018 01:29 PM
شرح تشغيل الأكسيس بدون برنامج الأكسيس على الجهاز ابن الوليد انشاء وتصميم وبرمجة البرامج 0 12-09-2018 01:46 PM
سيرياتوك اندرويد | سيرياتالك شبيه الواتس | نسخة حصري سيرياا تطبيقات الهاتف المحمول 1 11-26-2018 09:37 PM
كيفية عمل نسخة احتياطية من الرسائل والوسائط من WhatsApp على iPhone ابن الوليد تطبيقات الهاتف المحمول 0 11-14-2018 01:11 PM

 

RSS RSS 2.0 XML MAP HTML

الساعة الآن 03:01 AM

نبذة عن المنتدى

روابط مفيدة

إعلانات نصية

روابط الموقع

منتديات روكشا لتقنية المعلومات تقدم كل ما هو جديد ومفيد في عالم البرامج سواء جاهزة أو طرق وشروحات برمجة وتصميم وسوف تجدون أقسام عديدة ومختصة لكل ما تبحث عنه



Powered by vBulletin® Copyright ©2000 - 2019,