اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

zahrah2016

عضوية شرفية
  • Posts

    95
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل منشورات العضو zahrah2016

  1. اختي الفاضلة نرجس الورد السلام عليك ورحمة الله وبركاته ضعي هذا الكود في حدث الحالي وسوف يعمل معك مربع التحرير والسرد Private Sub Form_Current() Dim s As String s = DLookup("[user_name]", "tbl_fbi") Dim zm As Boolean zm = DLookup("[frm3_edit]", "tbl_fbi") If zm = False Then Beep MsgBox ("عفواً يــــا" & " ( " & s & " ) " & "ليس لديك صلاحية بالتعديل"), _ vbInformation + vbOKOnly + vbMsgBoxRight, "تنبيه" Else Me.AllowEdits = True End If End Sub
  2. اخي الفاضل الطاير قم بتجربة هذا الكود بعد التعديل وان شا الله تنحل المشكلة Private Sub أمر149_Click() Dim fileName As String fileName = "C:\Record\Sader\2007\" & Format(Me.ID, "000") & ".pdf" Call TWAIN_LogFile(1) Call TWAIN_SetHideUI(1) Call TWAIN_SetIndicators(0) Call TWAIN_SetJpegQuality(25) If TWAIN_OpenOpenSource("HP Commercial Scanjet 8250 TWAIN")<>0 Then Call TWAIN_SetResolution(25) Call TWAIN_SetPaperSize(1) Call TWAIN_AcquireMultipageFile(Me.hwnd, fileName) End If If TWAIN_LastErrorCode()<>0 Then Call TWAIN_ReportLastError("Unable to scan.") End If End Sub
  3. بارك الله فيكم جميعا يبدو انه يوجد هناك مشكلة في المنتدى بخصوص الملفات فقد حاولت الحصول على الملف السابق او غيره من الملفات من المنتدى ولكن لا يتم التحميل بطريقة سليمه وعند فك الضغط عند الملف يعطي انه معطوب لذا آمل من ادارة المنتدى البحث عن الخلل وإصلاحه . عموما هذا الملف يمكنك تحميله من خلال الرابط وليس من خلال رفع الملفات للمنتدى zaAllAccesVersionAndSecurityLowLevel_Pro
  4. الشرح الكامل التفصيلي المصور لمعرفة نسخة الأكسيس وتخفيض الأمان برمجيا اخواني الكرام السلام عليكم ورحمة الله وبركاته سنقوم بشرح آلية عمل برنامج تخفيض مستوى الأمان في جميع نسخ برنامج الأكسيس برمجيا وبدون اي ملفات اضافية وسيكون ذلك عن طريق الأكواد فقط . نبذه عن نسخ برنامج الأكسيس كلنا يعلم ان اي نسخة من برنامج الأكسيس لها رقم خاص يميزها عن غيرها من النسخ فمثلا : نسخة الأكسيس 97 نجد انها تأخذ الرقم 8.0 نسخة الأكسيس 2000 نجد انها تأخذ الرقم 9.0 نسخة الأكسيس 2002 وهي نسخة الـ XP نجد انها تأخذ الرقم 10.0 نسخة الأكسيس 2003 نجد انها تأخذ الرقم 11.0 نسخة الأكسيس 2007 نجد انها تأخذ الرقم 12.0 كيف تتعرف على نسخ الأكسيس الموجوده لديك كل ما عليك هو اتباع هذه الطريقة : 1. من الويندوز اضغط على ابدأ 2. اختر تشغيل واكتب فيه RegEdit اتبع المسار التالي حتى تصل الى المجلد Office HKEY_CURRENT_USER\Software\Microsoft\Office وستجد جميع ارقام نسخ الأكسيس المثبته على جهازك بعد ان عرفنا ارقام نسخ الأكسيس والمسار الخاص بها نريد ان يقوم الكود برمجيا بمعرفة النسخة التي تم فتحها . لهذا سوف نستخدم هذه الوظيفة سواء في وحدة نمطية جديده او توضع مباشرة في الـ VBA ( محرر الفيجول بيسك للتطبيقات ) للنموذج ومن ثم استدعاؤها . كود معرفة نسخة الأكسيس المستخدمة حاليا Function GetVersion() As String GetVersion = SysCmd(acSysCmdAccessVer) End Function تخفيض أمان برنامج الأكسيس الغرض كلنا يقوم بتصميم برامج سواء كانت خاصة او لأغراض ربحيه ولكن احيانا يواجه المستخدمين الذين ليس لهم دراية او معرفة مسبقه بطريقة تخفيض امان الأكسيس ولهذا تظهر لهم بين الحين والآخر الرسائل المزعجة الخاصة بتحذيرات امان الأكسيس لهذا سنقوم بكتابة وظيفة مهمتها تخفيض أمان برنامج الأكسيس الذي يعمل وقت فتح البرنامج وتتم هذه العملية لمرة واحده فقط ومن بعدها سوف يستمر برنامج الأكسيس منخفضا امانه مهما فتحت من قواعد بيانات . الطريقة العادية لتخفيض أمان برنامج الأكسيس لتخفيض أمان برنامج الأكسيس من النسخة 97 وحتى النسخة 2003 فهو بإتباع هذه الطريقة : 1. الذهاب الى اشرطة قوائم الأكسيس 2. ثم اختيار ادوات 3. ثم اختيار ماكرو 4. ثم اختيار الأمان ومن ثم وضع الإشارة على الإختيار الأخير وهو " منخفض " ثم موافق اما في برنامج الأكسيس 2007 فيتم خفض الأمان يدويا بهذه الطريقة 1. الذهاب للقائمة الرئيسية واختيار خيارات الأكسيس . 2. من الخيارات اختر مركز التوثيق ثم اختر اعدادات مركز التوثيق . 3. اختر اعدادات الماكرو ثم ضع الأختيار على اخر اختيار وهو " تمكين كافة وحدات الماكرو " ولكن ليس من المعقول ان نقوم بهذه الخطوات في كل مره او ان نقوم بإبلاغ المستخدمين لهذه الخطوات عندما تظهر لديهم تحذير الأمان لهذا نريد ان يتم ذلك برمجيا بدون تدخل المستخدم . لهذا يجب ان نحصل اولا على المفاتيح الخاصة بهذه العملية من خلال الريجستري الخاص بالويندوز . في الخطوة السابقة لتخفيض أمان الأكسيس يدويا قمنا بوضعه على منخفض لهذا دعونا نرى كيف تم عمل ذلك في الريجستري . لو قمنا بفتح الريجستري وتتبع المسار التالي الخاص بالأكسيس فسنجده بهذه الطريقة : جميع النسخ من 97 وحتى 2003 تأخذ هذا المسار مع اختلاف الرقم في نسخة الأكسيس وهي هنا رقم 11.0 وتعني نسخة اكسيس 2003 للمستخدم هو: [HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security] وللنظام هو : [HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Access\Security] وسنجد ان المفتاح الفرعي لها جميعا بعد تخفيض الأمان يدويا هو "Level"=dword:00000001 اما في الأكسيس 2007 فالوضع مختلف قليلا [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 ختاما لكم مني خالص الشكر والتقدير
  5. بارك الله فيك استاذي التقني هناك تعديل بسيط على معاينة وطباعة الشيكات The_Clients_Checks.rar
  6. تفضل اخي الكريم المثال بعد التعديل Filter_By_3_Combobox_UP.rar
  7. تفضل اخي الكريم هذا الملف بعد التعديل بناء على طلبك Filter_By_2_Combobox_UP.rar
  8. تفضل اخي الكريم هذا المثال بناء على طلبك Filter_By_2_Combobox.rar
  9. تفضل اخي الكريم هذه هي طريقة ربط ثلاثة مربعات تحرير وسرد مع بعض تفحص الجداول والعلاقات وطريقة الربط والفهارس Filter_By_3_Combobox.rar
  10. تفضل اخي الكريم ابو عامر Number_UP2.rar
  11. نعم اخي الكريم يمكن عمل ذلك بسهوله اليك المرفق وستجد به كل المطلوب كل ما عليك هو اتباع الارقام الارشادية في النموذج 1. اختر اسم الجدول المطلوب من مربع التحرير والسرد 2. اختر الحقول المطلوب اظهارها في التقرير 3. اختر نوعية عرض صفحة التقرير سواء بالعرض او بالطول بعد عرض التقرير اضغط بالماوس الايمن على التقرير وقم بطباعته وهذا هو الملف المرفق وبالتوفيق zaReportManager.rar
  12. اخي الغالي واستاذي ابوهادي السلام عليكم ورحمة الله وبركاته لم استوعب كلماتك من هول الصدمه فهل من المعقول ان نفقد بكل سهوله احد اعمدة الاكسيس والذي له بصمات واضحه في جميع المنتديات . رجائي الوحيد بعد الله ان لا تترك المنتدى فالكل في امس الحاجة اليك فاذا كان في رحيلك خيرا لك فالله يوفقك ويحفظك ويرعاك وإن كانت مجرد فكرة عابره فأتمنى ان تنسى الموضوع ولا تفكر في الرحيل وان كنت عازم على ذلك فأتنى ان لا تقطع المنتدى بالكلية وتذكر ان لك اخوة واخوات يعز عليهم فراقك ختاما اتمنى من الله العلي القدير ان يوفقك ويحفظك ويرعاك اينما ذهبت اختكم المخلصة دائما وابدا زهره العبدالله
  13. تفضل اخي الكريم هذا المثال بناء على طلبك Filter_By_2_Combobox.rar
  14. تفضل اخي الكريم المثال بناء على طلبك PReport_UP2.rar
  15. اخي الفاضل السلام عليكم ورحمة الله وبركاته لديك طريقتين لعمل هذا الطريقة الأولى عن طريق الجدول وذلك بعرض الجدول في وضع التصميم ثم في خصائص الحقل الرقمي تضع في قاعدة التحقق من الصحة العبارة التالية In (100;300;500) وتضع في نص التحقق من الصحة العبارة التالية ( هذا الرقم غير مسموح بإستخدامه ) او تضع من عندك اي عبارة تختارها مثل ( الارقام المسموح بإدخالها هي 100 او 300 او 500 ) الطريقة الثانية عن طريق النموذج في حدث قبل التحديث للنموذج نضع هذا الكود Private Sub Form_BeforeUpdate(Cancel As Integer) If Me.txtNUMBER.Value <> 100 Then If Me.txtNUMBER <> 300 Then If Me.txtNUMBER <> 500 Then Cancel = True MsgBox "لا يمكن ادخال هذا الرقم" End If End If End If End Sub وهذا مثال على الطريقتين NUMBER.rar
  16. بارك الله فيك اخي بويوسف الراشد على هذا المجهود الجبار ونتمنى لك دوام التوفيق
  17. اخي بويزسف الراشد السلام عليكم ورحمة الله وبركاته يمكن تحقيق ذلك من خلال برنامج الاكسيس وذلك عن طريق الدالتين SaveSetting الخاصة بالكتابة في ملف الريجستري واستدعائها بالدالة GetSetting وبالطبع كان لك مثال اكثر من رائع خاص بالرقم السري عندما قمت بإستخدام الدالتين اعلاه ولكن عيب هذه الطريقه انك تحتاج الى اعادة تشغيل سواء الويندوز او برنامج الاكسيس او الملف نفسه من جديد حتى يتم تفعيل التغييرات في ملف الريجستري الخاص بالويندوز وطبعا اذا لم يتم اعادة التشغيل او الخروج من الملف فلن يتغير شيء وارى انها عملية متعبه نوعا ما في كل مره تقوم بعملية التشغيل والخروج وقد يكون المستخدم ليس لديه اية فكره عن هذا الموضوع لهذا فقد اختصرت الطريق الى ابعد الحدود بحيث تتم العملية بمجرد ان تقوم بفتح برنامج الاكسيس فالأكواد سوف تعمل في الخلفية ولن يشعر المستخدم ماذا يجري خلف الكواليس في الكود سوى انه سيرى مباشرة انه تم تخفيض مستوى الامان الى ادنى مستوى وهذا هو المطلوب . وقد اطلعت على مثال اخي الفاضل ابو هادي - حفظه الله - وهو في قمة الروعه وتأكيدا لكلامه فإنه يجب اعادة التشغيل للملف كما ذكر في المشاركه . لهذا اخي بويوسف الراشد لك حرية الخيار بين استخدام احدى الطريقتين سواء عن طريق ملفات الريجستري او طريقة الكود من قبل استاذنا ابو هادي .
  18. اعزائي الكرام السلام عليكم ورحمة الله وبركاته كنت ارغب في المشاركه والاجابة على السؤال منذ البداية ولكني تركت الفرصه لكم لتضعوا كل ما لديكم من افكار ومقترحات . فحسب سؤال الاخ انه يريد تخفيض مستوى الامان برمجيا وليس يدويا لانه لن ينفع ذلك لو تم توزيع البرنامج على عدة مستخدمين لديهم برنامج الاكسيس لم يقوموا بتخفيض مستوى الامان منذ البداية على اجهزتهم وخاصة لبرنامج الاكسيس ايضا ليس من المعقول ان يذهب الى كل جهاز ويقوم بهذه العملية يدويا وحتى لو قام بتحويل البرنامج الى ملف EXE فلن بفيد ذلك لأن صفة الأمان ليست متعلقه ببرنامج الاكسيس فقط بل بكل برامج الاوفيس اذا ما هو الحل ؟ دعونا نتطرق لشيء من التوضيح حول الامان في برامج الاوفيس عند تثبيت برامج الاوفيس لأول مره على جهاز الكمبيوتر وعند فتح اي برنامج سواء كان اكسيس او اكسيل او وورد او بوربوينت فإنه ستظهر لنا هذه الرساله هذه الرسالة ليست خاصة ببرنامج الاكسيس فقط بل بكل برامج الاوفيس وفائدة هذه الرسالة انها تبين لنا انه يجب حماية برامج الاوفيس من فيروسات الماكرو وهي منتشرة بكثره من خلال ملفات الوورد والاكسيل ونادرا مع برنامج الاكسيس . لهذا نجد ان الوضع الافتراضي الذي يقوم به معالج تثبيت برامج الاوفيس هو وضع الحماية على اقصى درجه وهي عالي واذا رغب المستخدم في تخفيضها فله حرية الأختيار . من اين تأتي هذه الرسالة او ما تسمى SandBox ؟ تأتي هذه الرسالة من خلال الريجستري الخاص بنظام الويندوز . ( أول معلومة مفيده حصلنا عليها تذكروها جيدا ) كيف يتم تخفيض مستوى الامان وما هو الامر الخاص بها ؟ يتم تخفيض مستوى الامان يدويا عن طريق شريط قوائم الاكسيس ثم ادوات ثم ماكرو ثم أمان ثم منخفض حسب الصوره نلاحظ من خلال الصور التالي أمان عالي High security الامر الخاص به هو MsoAutomationSecurityForceDisable والقيمه الخاصة به هي 3 أمان متوسط Medium security الامر الخاص به هو MsoAutomationSecurityByUI والقيمة الخاصة به هي 2 أمان منخفض Low security الامر الخاص به هو MsoAutomationSecurityLow القيمه الخاصه به هي 1 ( تذكروا هذه القيم جيدا لأننا سوف نحتاجها ) من خلال استعراض هذه الخصائص والقيم نجد ان هناك شيء مشترك بينهم جميعا وهو MsoAutomationSecurity وهذا يعني ان هذا الامر خاص لعمليات الاتممه فيما يخص الأمان بين برامج الاوفيس وليس مقتصرا على برنامج الاكسيس . بعد ان جمعنا هذه المعلومات عن هذه الرسالة التي تظهر في بداية فتح اي برنامج اوفيس في حال ترك المستخدم الامان على عالي ولم يقم بتخفيضه يدويا فإننا سوف نتعامل معه بطريقة برمجيه بحته ولمره واحده فقط . لذا سنحتاج الى ملفين من نوع Reg لكي تقوم بهذه العملية وتقوم بالكتابة برمجيا في محرر الريجستري الخاص بنظام الويندوز بدون تدخل منا . 1. نفتح برنامج المفكره ونكتب هذا الكود Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Security] "Level"=dword:00000001 2. نحفظ الملف بتنسيق Reg ليصبح لدينا الملف بإسم مثلا zaMachineSecurityLevel.reg 3. نقوم بإنشاء ملف اخر بنفس التنسيق Reg ونضع به هذا الكود Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security] "Level"=dword:00000001 "DontTrustInstalledFiles"=dword:00000000 4. نحفظ الملف بتنسيق Reg ليصبح لدينا الملف بإسم مثلا zaUserSecurityLevel.reg كما لاحظنا جميعا اننا قمنا بالوصول الى ملف الريجستري والكتابة فيه وتخفيض مستوى الامان Level الى 1 وتعني Low ملاحظة هامه : 1. هل لاحظت ما قمنا به في الكود من خلال هذه العبارة "Level"=dword:00000001 انها تعني ابلاغ الريجستري ان يقوم بتخفيض الامان الى منخفض( يعني 1 ) مهما كان مستوى الامان ولو قمت بتغيير الرقم الى 2 او 3 فستزيد مستوى الامان الى متوسط او عالي على التوالي . 2. ايضا لاحظ الرقم 11 انه يمثل الاكسيس 2003 اذا كان لديك اكسيس اصداره 2002 ( XP ) فغير الرقم الى 10 اذا كان لديك اكسيس اصداره 2000 فغير الرقم الى 9 5. نقوم الان بحفظ هذين الملفين في المجلد الخاص بقاعدة البيانات نقوم الان بإنشاء نموذج في قاعدة البيانات وليكن مثلا هو النموذج الافتتاحي او الشاشة الافتتاحية للبرنامج ونضع به الاكواد التالية في حدث عند عداد الوقت الذي نختاره مثلا ليكن 3000 ويعني 3 ثواني ثم يختفي ويظهر النموذج الرئيسي للقاعدة Private Sub Form_Timer() Call Shell("regedit.exe /s """ & CurrentProject.Path & "\zaMachineSecurityLevel.reg""", 0) Call Shell("regedit.exe /s """ & CurrentProject.Path & "\zaUserSecurityLevel.reg""", 0) DoCmd.Close DoCmd.OpenForm "form" End Sub لو نلاحظ ان الاكواد تستدعي الملفين الموجودين في نفس مجلد القاعدة لهذا يفضل وضع الملفين zaMachineSecurityLevel.reg و zaUserSecurityLevel.reg في نفس المجلد الخاص بقاعدة البيانات . والذي يحدث داخل الكود عند فتح قاعدة البيانات يتم فتح نموذج الافتتاحية ثم يتم استدعاء برنامج Shell الخاص بالويندوز ليقوم بتشغيل برنامج regedit.exe مع وضع الاشارة s/ لمنع اظهار رسالة التنبية التي تطالبك بالتأكد من انك تريد الكتابة الى محرر الريجستري ثم نكمل الكود بإعطاءه مسار البرنامج من خلال الامر CurrentProject.Path واخير اسم الملف zaMachineSecurityLevel.reg و zaUserSecurityLevel.reg والصفر في الآخير يعني الكتابة في الريجستري . طبعا العملية لا تحتاج الى اعادة تشغيل للويندوز بل ستتم العملية بدون ان تشعر ان هذه الاكواد قد تم كتابتها في الريجستري وتم تخفيض مستوى الامان برمجيا وجرب النتيجة فورا ستكون رائعه كروعتك وانت تقرأ المشاركة وتحمل الملف المرفق zaSecurityLowLevel.rar
  19. اخي رضوان بارك الله فيك على هذه الملاحظة تم التعديل بموجبها قم بالتجربه الان وانظر هل تحسن الوضع الى الافضل zaChangeResolution2006_UP.rar اخي طارق العيد واصل تجاربك وان احتجت اي مساعده فلا تتردد في السؤال عنها
  20. حسنا اخي طارق سأحقق رغبتك ولن يصيبك اللبس انظر الان للبرنامج بعد عملية الدمج بين معرفة دقة الشاشة الحالية وامكانية التغيير مباشرة برمجيا بدون ان تغير شيء في البرنامج فكل شيء يتم آليا بدون تدخل منك او من المستخدم zaChangeResolution2006.rar ملاحظة : لا تنسى ابداء رأيك لانه يهمني جدا حتى استطيع التغيير للافضل
  21. اخواني الكرام السلام عليكم ورحمة الله وبركاته اخي التقني بارك الله فيك على هذا المجهود الرائع اخي طارق العيد اخي الفاضل طارق العبد ( الفيلسوف ) هذه هي طريقة اعادة تحجيم النموذج مع كامل عناصر النموذج بناء على تصميمك له في شاشة العرض التي تعمل عليها حاليا مثال : لديك شاشة عرض كبيره مثلا 17 بوصه او 19 بوصه بدقة مقاس مثلا 800 × 600 او 1024 × 768 وقمت بتصميم نموذجك عليها وكان المقاس مناسب جدا لك على هذه الشاشة واردت عرض هذا النموذج على شاشة اصغر ودقة شاشة مثلا 640 × 480 ماذا سيحدث ستجد ان النموذج عند عرضه على هذه الشاشة قد خرج عن حدود الشاشة ولم تتحمله لهذا كان هناك وحدة نمطية تدعى ReSizeForm تقوم بضبط ومعايرة المقاسات اوتوماتيكا للنموذج حسب ما تحدده لها من ارقام في بداية الوحدة النمطية حيث انني شرحت بالتفصبل جميع الوظائف في الوحدة النمطية وطريقة عملها وطريقة استخدامها . الان وضعت لك مثال للتجربة تحت زر امر " اعادة تحجيم النموذج " بمقاس شاشة صغير ودقة مقاس 640 × 480 بيكسل لترى الفرق عند استخدامه على شاشة عرض كبيره مثلا 17 بوصه ودقة 1024 × 768 بيسكل ( لا تغير شيء في خصائص الشاشة عن طريق الويندوز بل دعها كما هي فالكود سيتكفل بهذا مع النموذج ) . فقط افتح القاعدة واضغط اعادة تحجيم اذا رغبت في وضع الكود الموضوع تحت زر الامر " اعادة التحجيم " في حدث عند الفتح او التحميل فلا يوجد مشكله . ملاحظة : كلما زادت دقة الشاشة كلما صغر حجم النموذج والعكس صحيح وحاول تغير الارقام في الوحدة النمطية لترى الفرق عند اختلاف التغيير في دقة الشاشة . ResizeForm.rar
  22. اعزائي الكرام السلام عليكم زرحمة الله وبركاته قد يرغب اي شخص بعد تصميمه لبرنامجه الخاص به الغاء المفاتيح Control + Alt + Delete وخاصة مع نظام الويندوز XP والتي عند ضغط هذه المفاتيح الثلاثة مع بعض يفتح مدير المهام لهذا سوف نقوم بإيقافه نهائيا مع امكانية استعادته برمجيا بالكود لهذا نقوم بتجهيز ملفين من نوع reg الاول سيكون اسمه : Disable.reg ونضع به العبارة التالية : Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableTaskMgr"=dword:00000001 وهذا الملف هو ملف ريجستري يقوم بالكتابة الى محرر الريجستري في نظام الويندوز XP حسب القيم المعطاه له وهي ايقاف عمل مدير المهام الملف الثاني سيكون اسمه Enabled.reg ونضع به العبارة التالية : Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableTaskMgr"=dword:00000000 يمكن نسخ الكودين في برنامج المفكره كل ملف لوحده وعند حفظ الملف نعطية الامتداد reg في الاخير بدلا من txt ننشأ الان نموذج ونضع به زري امر الاول لعدم تمكين مدير المهام والاخر لتمكين مدير المهام واستعادته لهذا نضع تحت زر الامر عدم التمكين في حدث عند النقر هذا الكود Private Sub Disable_Click() 'Control + Alt + Delete هذا الكود خاص بعدم تمكين مدير المهام عند الضغط على المفاتيح Call Shell("regedit.exe /s """ & CurrentProject.Path & "\Disable.reg""", 0) End Sub ثم نضع تحت زر الامر الآخر لتمكين مدير المهام في حدث عند النقر هذا الكود 'Control + Alt + Delete هذا الكود خاص بتمكين مدير المهام عند الضغط على المفاتيح Private Sub Remove_Click() Call Shell("regedit.exe /s """ & CurrentProject.Path & "\Enabled.reg""", 0) End Sub لو نلاحظ ان الاكواد تستدعي الملفين الموجودين في نفس مجلد القاعدة لهذا يفضل وضع الملفين Disable.reg و Enabled.reg في نفس المجلد والذي يحدث داخل الكود بعد النقر على زر الأمر انه يتم استدعاء برنامج Shell الخاص بالويندوز ليقوم بتشغيل برنامج regedit.exe مع وضع الاشارة s/ لمنع اظهار رسالة التنبية التي تطالبك بالتأكد من انك تريد الكتابة الى محرر الريجستري ثم نكمل الكود بإعطاءه مسار البرنامج من خلال الامر CurrentProject.Path واخير اسم الملف Disable.reg او Enabled.reg والصفر في الآخير يعني الكتابة في الريجستري طبعا العملية لا تحتاج الى اعادة تشغيل للويندوز كل ما عليك هو اضغط الزر المطلوب وجرب النتيجة فورا ستكون رائعه كروعتك وانت تقرأ المشاركة وتحمل الملف المرفق . قد يسأل سائل ويقول لماذا لا نستخدم الدالتين SaveSetting الخاصة بالكتابة في محرر الريجستري واستدعائها بالدالة GetSetting وحذفها بالدالة DeleteSetting فأقول له ان هذه الدوال تصلح فعلا ولكنها تحتاج منك الى الى اعادة تشغيل الويندوز لهذا بعد الضغط على اي زر امر لتكون الأوامر المرسلة لمحرر الريجستري نشطه بعد اعادة التشغيل او بعد عملية خروج المستخدم LogOff لهذا ارى انها متعبه . وبهذا نكون قد انتهينا من شرح وآلية البرنامج لمن يريد الاستفاده منه يوجد مجلد بإسم DisableRemoveCtrl_Alt_Del يحتوي على قاعدة البيانات DisableRemoveCtrl_Alt_Del.mdb و ملف ريجستري عدم تمكين مدير المهام Disable.reg وملف ريجستري تمكين مدير المهام Enabled.reg وهذا هو البرنامج كامل DisableRemoveCtrl_Alt_Del.rar
  23. اعزائي الكرام السلام عليكم ورحمة الله وبركاته تقبل الله منا ومنكم صالح الاعمال وكل عام وانتم بخير وبمناسبة عيد الفطر المبارك اهدي لكم هذه المجموعة القيمه من البرامج الممتعه البرامج : تستطيع التعديل عليها بما يتناسب معك فبها من الاكواد والتفنيات الحديثه الشيء الكثير Contact_management_database.rar Customer_Order_Database.rar Event_management_database.rar Inventory_management_database.rar Orders_management_database.rar Service_call_management_database.rar Issues_database.rar Membership.rar
×
×
  • اضف...

Important Information