اذهب الي المحتوي
أوفيسنا

كود لخفض مستوى الامان في قاعدة بيانات


أبو  أحمد

الردود الموصى بها

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

بعد اذنكم هل يوجد كود معين لوضعه في الصفحة الرئيسية لقاعدة البيانات بحيث عند بداية فتح القاعدة يقوم بتخفيض مستوى الامان في الاكسس مباشرة 

لانه عند فتح قاعدة البيانات عند البعض بعطي رسالة والمثير لا يفهم ان مستوى الامان عالي فيفشل في فتح القاعدة

جزاكم الله خيرا 

رابط هذا التعليق
شارك

عليكم السلام

اولا

منهج استاذنا جعفر  هو عدم التعدي على خصوصيات العميل ، وهنا قدم لنا درسا لكيفية خفض امان برنامجنا فقط

ثانيا :

من واقع تجربة يمتنع عمل الكود من داخل اكسس حال فتحه ، لهذا نضطر لاستخدام وسيط او ملف خارجي لهذه المهمة .

بالنسبة لي استخدم ملف تنفيذي يتم تشغيله اثناء تنصيب برنامجي

وهذا هو الملف .. يعمل على 12 ، 14 ، 15 ، 16

low_new.rar

رابط هذا التعليق
شارك

46 دقائق مضت, ابوخليل said:

منهج استاذنا جعفر  هو عدم التعدي على خصوصيات العميل

هذه الجزئية لم افهمها استاذ @ابوخليل

انا عامل تخفيض الامان للاكسس  الخاص بي ..

قبل مدة عملت برنامج لعميل ...وحينما انزلته على حاسبته اشتغل طبيعي ولم تشتغل معي رسائل الامان ..علما انه لا يعرف بالاكسس ولا عوامل الامان 

هل هذا يعني ...ان نسخته سوف تعمل دون امان مع اي برنامج ؟

رابط هذا التعليق
شارك

الأمان الذي يتم التعديل عليه على اي جهاز من ملف (امان الماكرو) وضبطه على منخفض ، يكون عاما لكل ملف اكسس يتم تشغيله

يحتمل عميلك الامان لديه معد مسبقا وتم تخفيضه

طريقة الاستاذ جعفر ، تخفيض الامان فقط للملف الموجود داخل المجلد المعد

 

رابط هذا التعليق
شارك

10 ساعات مضت, ابوخليل said:

بالنسبة لي استخدم ملف تنفيذي يتم تشغيله اثناء تنصيب برنامجي

ما الذي يفعله هذا الملف بالضبط عمي أبوخليل ؟

وهل تشغله يدويا أم بأمر برمجي ؟

وهل يشترط أن يكون بجانب قاعدة البيانات أثناء التشغيل ؟

🙂 

رابط هذا التعليق
شارك

25 دقائق مضت, Moosak said:

ما الذي يفعله هذا الملف بالضبط عمي أبوخليل ؟

'strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\11.0\Access\Security", "Level", 1)
strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\12.0\Access\Security", "VBAWarnings", 1)
strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\14.0\Access\Security", "VBAWarnings", 1)
strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\15.0\Access\Security", "VBAWarnings", 1)
strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\16.0\Access\Security", "VBAWarnings", 1)
25 دقائق مضت, Moosak said:

وهل تشغله يدويا أم بأمر برمجي ؟

برنامج التحزيم يخدم بعدة اشياء :

منها تشغيل التطبيقات اثناء التنصيب او بعد الانتهاء

ومنها تنفيذ الأوامر كتسجيل المكتبات ونحوه .

ولكني لا حظت في الآونة الاخيرة قوة حماية وندوز .. وعدم السماح للبرامج العادية بتجاوز الحماية خاصة فيما يخص ملفات النظام 

اللي اقصده انه يكون في ملف التعديل اوامر تتجاوز حماية وندوز ، وكما ترى الملف يقوم بالتعديل على الريجستري ، ورقم واحد في سطر الكود يمثل درجة امان الماكرو ، والارقام من 11 الى 16 تمثل اصدارة اكسس .

 

25 دقائق مضت, Moosak said:

وهل يشترط أن يكون بجانب قاعدة البيانات أثناء التشغيل ؟

لا .. لا يشترط .. فبعض الملفات يتيح لنا برنامج التحزيم من توجيهها الى المجلدات المؤقته

انا اجعل هذا الملف اعلاه ضمن مجلد البرنامج فقد يحتاجه العميل فيما لو قام بتنصيب اوفيس جديد

 

  • Thanks 1
رابط هذا التعليق
شارك

45 دقائق مضت, ابوخليل said:

والارقام من 11 الى 16 تمثل اصدارة اكسس .

كيف لو أردنا إضافة الإصدارات الأحدث للقائمة ؟
لأن الملف exe  🙂 

رابط هذا التعليق
شارك

1 ساعه مضت, ابوخليل said:

هل تريد مشروع الفيجوال ؟ ام يكفي ان اسحب منه كامل الاكواد ؟

لو يمكن سحب الأكواد في ملف VBS يكون أفضل .. ولكن المشكلة أننا سندخل في معمعة مع مكافحات الفيروسات 😅🖐

وربما يكون لديك فكرة أفضل .. :rol:

رابط هذا التعليق
شارك

نسخ لصق

هذا كل الموجود في المشروع :

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
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&
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private 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 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
Private 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

Private 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

Private 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 Timer1_Timer()
Dim strVM As String
Dim strVS As String
On Error Resume Next
'strVM = SaveRegLong(HKEY_LOCAL_MACHINE, "Software\Microsoft\Office\11.0\Access\Security", "Level", 1)
'strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\11.0\Access\Security", "Level", 1)
strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\12.0\Access\Security", "VBAWarnings", 1)
strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\14.0\Access\Security", "VBAWarnings", 1)
strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\15.0\Access\Security", "VBAWarnings", 1)
strVS = SaveRegLong(HKEY_CURRENT_USER, "Software\Microsoft\Office\16.0\Access\Security", "VBAWarnings", 1)
Unload Me
End Sub




 

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information