أبو أحمد قام بنشر سبتمبر 11, 2023 قام بنشر سبتمبر 11, 2023 السلام عليكم ورحمة الله بعد اذنكم هل يوجد كود معين لوضعه في الصفحة الرئيسية لقاعدة البيانات بحيث عند بداية فتح القاعدة يقوم بتخفيض مستوى الامان في الاكسس مباشرة لانه عند فتح قاعدة البيانات عند البعض بعطي رسالة والمثير لا يفهم ان مستوى الامان عالي فيفشل في فتح القاعدة جزاكم الله خيرا
ابوخليل قام بنشر سبتمبر 11, 2023 قام بنشر سبتمبر 11, 2023 عليكم السلام اولا منهج استاذنا جعفر هو عدم التعدي على خصوصيات العميل ، وهنا قدم لنا درسا لكيفية خفض امان برنامجنا فقط ثانيا : من واقع تجربة يمتنع عمل الكود من داخل اكسس حال فتحه ، لهذا نضطر لاستخدام وسيط او ملف خارجي لهذه المهمة . بالنسبة لي استخدم ملف تنفيذي يتم تشغيله اثناء تنصيب برنامجي وهذا هو الملف .. يعمل على 12 ، 14 ، 15 ، 16 low_new.rar
Eng.Qassim قام بنشر سبتمبر 11, 2023 قام بنشر سبتمبر 11, 2023 46 دقائق مضت, ابوخليل said: منهج استاذنا جعفر هو عدم التعدي على خصوصيات العميل هذه الجزئية لم افهمها استاذ @ابوخليل انا عامل تخفيض الامان للاكسس الخاص بي .. قبل مدة عملت برنامج لعميل ...وحينما انزلته على حاسبته اشتغل طبيعي ولم تشتغل معي رسائل الامان ..علما انه لا يعرف بالاكسس ولا عوامل الامان هل هذا يعني ...ان نسخته سوف تعمل دون امان مع اي برنامج ؟
ابوخليل قام بنشر سبتمبر 12, 2023 قام بنشر سبتمبر 12, 2023 الأمان الذي يتم التعديل عليه على اي جهاز من ملف (امان الماكرو) وضبطه على منخفض ، يكون عاما لكل ملف اكسس يتم تشغيله يحتمل عميلك الامان لديه معد مسبقا وتم تخفيضه طريقة الاستاذ جعفر ، تخفيض الامان فقط للملف الموجود داخل المجلد المعد
Moosak قام بنشر سبتمبر 12, 2023 قام بنشر سبتمبر 12, 2023 10 ساعات مضت, ابوخليل said: بالنسبة لي استخدم ملف تنفيذي يتم تشغيله اثناء تنصيب برنامجي ما الذي يفعله هذا الملف بالضبط عمي أبوخليل ؟ وهل تشغله يدويا أم بأمر برمجي ؟ وهل يشترط أن يكون بجانب قاعدة البيانات أثناء التشغيل ؟ 🙂
ابوخليل قام بنشر سبتمبر 12, 2023 قام بنشر سبتمبر 12, 2023 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: وهل يشترط أن يكون بجانب قاعدة البيانات أثناء التشغيل ؟ لا .. لا يشترط .. فبعض الملفات يتيح لنا برنامج التحزيم من توجيهها الى المجلدات المؤقته انا اجعل هذا الملف اعلاه ضمن مجلد البرنامج فقد يحتاجه العميل فيما لو قام بتنصيب اوفيس جديد 1
Moosak قام بنشر سبتمبر 12, 2023 قام بنشر سبتمبر 12, 2023 45 دقائق مضت, ابوخليل said: والارقام من 11 الى 16 تمثل اصدارة اكسس . كيف لو أردنا إضافة الإصدارات الأحدث للقائمة ؟ لأن الملف exe 🙂
ابوخليل قام بنشر سبتمبر 12, 2023 قام بنشر سبتمبر 12, 2023 ان عملته على فيجوال 6 ويمكن عمله في اكسس بالاكواد نفسها هل تريد مشروع الفيجوال ؟ ام يكفي ان اسحب منه كامل الاكواد ؟
Moosak قام بنشر سبتمبر 12, 2023 قام بنشر سبتمبر 12, 2023 1 ساعه مضت, ابوخليل said: هل تريد مشروع الفيجوال ؟ ام يكفي ان اسحب منه كامل الاكواد ؟ لو يمكن سحب الأكواد في ملف VBS يكون أفضل .. ولكن المشكلة أننا سندخل في معمعة مع مكافحات الفيروسات 😅🖐 وربما يكون لديك فكرة أفضل ..
ابوخليل قام بنشر سبتمبر 12, 2023 قام بنشر سبتمبر 12, 2023 نسخ لصق هذا كل الموجود في المشروع : 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 1 1
abofayez1 قام بنشر الأربعاء at 22:18 قام بنشر الأربعاء at 22:18 رحمك الله ووالديك أستاذنا أبو خليل لو تكرمت هل ممكن تعطينا فكرة عن كيفية تطبيق الكود السابق من داخل الأكسس وكيف يتم استدعاء الدالة. وجزاك الله خير الجزاء
ابوخليل قام بنشر الأربعاء at 23:42 قام بنشر الأربعاء at 23:42 54 دقائق مضت, abofayez1 said: رحمك الله ووالديك أستاذنا أبو خليل لو تكرمت هل ممكن تعطينا فكرة عن كيفية تطبيق الكود السابق من داخل الأكسس وكيف يتم استدعاء الدالة. وجزاك الله خير الجزاء جزاك الله خير يا ابا فايز على دعواتك الطيبة سوف اضرب لك مثلا يقرب المسألة لك لو كنت في بيت وتفاجأت ان لا يوجد ماء ولا اتصال بالهاتف والسبب ان هذه الاشياء لا تعمل الا بالكهرباء .. والكهرباء مقطوعة وكي تعمل هذه الاشياء يجب ان تذهب الى قاطع الكهرباء خارج البيت وتفتحه بالضبط هذا ما يحدث في اكسس .. محرك اكسس الموجود على الجهاز قد عطل تنفيذ الاكواد والماكرو في ملفك عند الفتح .. فأصبح ملفك معاقا 😶 وبشكل ادق : محرك اكسس هو من يفتح الملف والحماية في المحرك سابقة للفتح .. لذا : اما التدخل من الخارج وتخفيض الأمان قبل فتح الملف ... او التدخل يدويا وتخفيض الامان لاحظ انه بعد التعديل يدويا يطالبك باعادة تشغيل ملفك انا اتصور ان المسألة ابسط مما نتصور .. خاصة اذا ارسلت البرنامج الى عميل معلوماته محدودة يكفي تصوير خطوات العملية .. او فيديو صغير .. ولا يلزم ان تتم عملية تخفيض الأمان من خلال برنامجك وانما يمكن من خلال فتح اكسس جديد ثم / ملف / خيارات / مركز التوثيق / امان الماكرو / ثم حدد آخر سطر للاسفل وموافق للجميع اتمنى ان يكون ردي هذا مفيدا 1
abofayez1 قام بنشر منذ 19 ساعات قام بنشر منذ 19 ساعات أستاذي الفاضل ردك والله مفيد جدا وواضح للغاية ويدل على ما يمتلك صاحبه من خبرة واسعة وعلم غزير … زادك الله علما وفهما . أستاذ خليل سبق وأن خدمتني وعملت لي ملف تنفذي باسم برنامجي وهو يعمل بامتياز ونزلت لك مجموعة ملفات أخرى من المنتدى كلها ممتازة وتعمل بدون مشاكل والذي دعاني لكتابة ردي هذا هو تهربا من حماية ويندوز العنيدة التي لا تبقي ولا تذر … أي ملف لم يتعرف عليه بصورة دقيقة يقول فيروس ويمنع تنزيله من النت أو تشغيله على الجهاز فأصبح هذا الملف مصدر شك للعملاء فأصبح البعض منهم لا يستطيع تنزيل البرنامج بسبب الحماية والبعض يستطيع التنزيل لكن لا يمكنه التحميل أيضا بسبب الحماية … لذا قلت لعلي أجد طريقة للتهرب من حماية الويندوز . المشكلة الأخرى وهي الأهم أن معظم الناس لا. يمتلك نسخة أوفيس بروفشنال والتي يأتي الإكسس من ضمنها لذا access runtime هو الخيار البديل والمميز لأكثر المستخدمين والمشكلة أنه لا يحوي خيارات للدخول على الاعدادات وإيقاف الماكرو فكان لا بد من استخدام الملف الخارجي التنفيذي ولكن اصطدمنا بحماية الويندوز كما ذكرت. استفسار آخر أستاذ خليل لو سمحت لي: هل يمكن جعل خفض الأمان بإضافة ملفات الريجستري أثناء تحميل البرنامج وهل الكود حينها يختلف عن كود الملف الخارجي لأني حاولت تنفيذ ذلك ولا قدرت ما ادري هل الكود يختلف عند إضافته أثناء التحميل عن كود الملف الخارجي المنفصل. وفقك الله وتقبل تحياتي واعذرني على الإطالة وكثرة الأسئلة.
ابوخليل قام بنشر منذ 10 ساعات قام بنشر منذ 10 ساعات دعنا نتبع طريقة الاستاذ جعفر .. وحقيقة هي الطريقة النظامية التي تحترم خصوصية العميل و هي خفض امان برنامجنا فقط .. وابقاء الحماية على اي ملف اكسس آخر يتم تشغيله وتتم من خلال أضافة موقع قاعدة البيانات ( المجلد ) إلى المواقع الموثوقة. وجعله مجلدا موثوقًا وبما في داخله من ملفات اكسس. يتم ذلك يدويا في مركز التوثيق ضمن خيارات اكسس . وبما انك ذكرت ان الاجهزة الاخرى لا تحتوي على اكسس كامل فيمكن معالجة الامر برمجيا واضافة توثيق مجلد البرنامج لاحظ ان موقع البرنامج سيكون ثابت في مكان محدد .. ولو تم تغيير الموقع مستقبلا فستعود الحماية طبعا الموقع وتحديده او تغييره متاح لك من خلال سطر الكود في المرفقات ملف ريجستري يقوم باعطاء الثقة لمجلد محدد .. للتجربة : ارفع مستوى الحماية في اكسس عندك .. وافتح قاعدة بيانات محددة للتأكد ان الحماية فعالة غير الامتداد الى txt وافتح الملف وغير اسم المجلد وموقعه حسب ما لديك .. واحفظ واغلق ثم اعد تسمية الامتداد انتبه لرقم اصدار اكسس .. فالموجود في الملف 14 لأكسس 10 شغل الملف اذهب بعدها للمقارنة بين القواعد التي خارج المجلد الهدف والقاعدة التي داخله ---------------------------------------------------------------------------------------------------- 9 ساعات مضت, abofayez1 said: هل يمكن جعل خفض الأمان بإضافة ملفات الريجستري أثناء تحميل البرنامج وهل الكود حينها يختلف عن كود الملف الخارجي لأني حاولت تنفيذ ذلك ولا قدرت ما ادري هل الكود يختلف عند إضافته أثناء التحميل عن كود الملف الخارجي المنفصل. وفقك الله وتقبل تحياتي واعذرني على الإطالة وكثرة الأسئلة. نعم يمكن .. انا استخدم ملفات باتش bat. يتم تشغيلها اثناء او بالاصح في نهاية عملية التنصيب ,, واستخدمها لاغراض اخرى وليست للأمان وانما استخدم ملفات exe لخفض الأمان لم اجرب reg فلعلك تجرب وتخبرنا بالنتيجة ( يمكنك كتابة الاسطر داخل برنامج التحزيم .. ان كان يدعم ذلك ) AccessTrusted.rar 1
abofayez1 قام بنشر منذ 5 ساعات قام بنشر منذ 5 ساعات جزاك الله خيرا أستاذنا أبو خليل على هذا التوضيح ... سأجرب الملف إن شاء الله
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.