بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
1,745 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
29
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو صالح حمادي
-
نعم أخي شفان هذه هي الإجابة شكرا جزيلا أنا أضفت برنامج التفعيل مع المرفق لأن الهدف من المنشور هو تعليمي فقط طبق هذا الكود: SaveSetting "mm", "nn", "nember_days", 0 نعم يمكن ذلك باستخدام رقم الهارديسك إلا إدا كنت تعرف اسم المجلد الرئيسي و اسم القسم و اسم المفتاح و هذا لا يمكن معرفته لأنه موجود لاكود و النسخة التي تعطى للمستخدم تكون مغلقة
-
شرح البرنامج: 1- يتعامل البرنامج مع الرجستري في حماية النسخة ( الريجستري عباره عن قاعدة بيانات في نظام التشغيل Windows .و يحتوي على معلومات أجهزة النظام و البرامج المثبتة والإعدادات، و بيانات حسابات المستخدمين على الكمبيوتر. و أي عملية تقوم بها على الجهاز تخزن بالريجستري . ) 2- عند أول تشغيل للبرنامج يقوم بحفظ تاريخ أول يوم للاستخدام و عدد أيام النسخة التجريبية و خوارزمية التفعيل كلها في الرجستري و يحذف الجدول الذي يحمل جميع البيانات بعد نقلها و حفظها بالرجستري. 3- للإطلاع على الجدول tbl الذي يشتمل المعلومات المهمة يجب عليك فتح البرنامج في وضع التصميم دون تشغيله لأنه عند أي تشغيل للبرنامج سوف يحذف الجدول و في حال لم تجد الجدول حمل نسخة أخرى من البرنامج. 4- اسم الحقل الذي يحدد مدة الفترة التجريبية هو nemberday 5- كل مرة تقوم بتشغيل البرنامج يقوم بحفظ التاريخ و الوقت الحاليين في الرجستري لمنع التلاعب بالتاريخ. 6- لحفظ قيمة بالرجستري نستخدم الكود التالي: SaveSetting AppName , Section, Key ,Setting appName اسم المجلد الرئيسي Section القسم KEY المفتاح Setting القيمة المراد تخزينها 7- لاستعادة القيمة من الرجستري نستخدم الكود التالي: dim X X = GetSetting(AppName , Section, Key) X هو الذي سوف يأخذ القيمة التي سوف نستدعيها 8- لحذف القيمة من الرجستري نستعمل الكود التالي: DeleteSetting AppName , Section, Key 9- و هذه هي الوحدة النمطية التي إستعملتها في البرنامج: Function salah(frm1 As String, frm2 As String, frm3 As String) 'On Error Resume Next Dim firstdate As Date Dim lastdate As Date Dim lasttime As Date Dim expdate As Date Dim nameschool As String Dim numschool As Double Dim khawarezmia As String Dim nember_days As Integer '-------------------------------------------------------------------- firstdate = GetSetting("aa", "bb", "firstdate", Nz(firstdate)) If firstdate = Empty Then SaveSetting "aa", "bb", "firstdate", Date End If firstdate = GetSetting("aa", "bb", "firstdate", Nz(firstdate)) '--------------------------------------------------------------------- lastdate = GetSetting("ss", "tt", "lastdate", Nz(lastdate)) If lastdate = Empty Then SaveSetting "cc", "dd", "lastdate", Date End If lastdate = GetSetting("ss", "tt", "lastdate", Nz(lastdate)) '--------------------------------------------------------------------- lasttime = GetSetting("zz", "hh", "lasttime", Nz(lasttime)) If lasttime = Empty Then SaveSetting "ee", "ff", "lasttime", Now End If lasttime = GetSetting("zz", "hh", "lasttime", Nz(lasttime)) '--------------------------------------------------------------------- nember_days = GetSetting("mm", "nn", "nember_days", Nz(nember_days)) If nember_days = Empty Then nember_days = 1 End If expdate = DateAdd("d", nember_days, firstdate) '--------------------------------------------------------------------- khawarezmia = GetSetting("gg", "pp", "khawarezmia", Nz(khawarezmia)) If khawarezmia = Empty Then numschool = DLookup("numscho", "tbl") SaveSetting "ii", "jj", "numschool", numschool khawarezmia = DLookup("khawr", "tbl") khawarezmia = Replace(khawarezmia, "numschool", numschool) SaveSetting "gg", "pp", "khawarezmia", khawarezmia nameschool = DLookup("namescho", "tbl") SaveSetting "kk", "ll", "nameschool", nameschool nember_days = DLookup("nemberday", "tbl") SaveSetting "mm", "nn", "nember_days", nember_days End If For Each ttable In CurrentData.AllTables If ttable.Name = "tbl" Then DoCmd.DeleteObject acTable, ttable.Name End If Next If Date < lastdate Then MsgBox "تاريخ الجهاز خاطئ" DoCmd.Quit Else If Date = lastdate And lasttime > Now Then MsgBox "ساعة الجهاز خاطئة" DoCmd.Quit End If If Date >= expdate Then MsgBox "إنتهاء مدة التفعيل عليك الإتصال بالمبرمج " SaveSetting "mm", "nn", "nember_days", 1 DoCmd.OpenForm frm3 DoCmd.Close acForm, frm1 Else SaveSetting "zz", "hh", "lasttime", Now SaveSetting "ss", "tt", "lastdate", Date nt = DateDiff("d", Date, expdate) MsgBox "بقي لك " & nt & " يوم على إنتهاء التفعيل" DoCmd.OpenForm frm2 DoCmd.Close acForm, frm1 End If End If End Function 10- و هذا الكود الخاص بإعادة التفعيل: numschool = GetSetting("ii", "jj", "numschool", Nz(numschool)) '--------------------------------------------------------------------- khawarezmia = GetSetting("gg", "pp", "khawarezmia", Nz(khawarezmia)) '--------------------------------------------------------------------- nameschool = GetSetting("kk", "ll", "nameschool", Nz(nameschool)) '--------------------------------------------------------------------- nember_days = GetSetting("mm", "nn", "nember_days", Nz(nember_days)) '--------------------------------------------------------------------- If Me.numero_act = Eval(khawarezmia) Then SaveSetting "mm", "nn", "nember_days", 140 nember_days = GetSetting("mm", "nn", "nember_days", Nz(nember_days)) DeleteSetting "aa", "bb", "firstdate" DeleteSetting "ss", "tt", "lastdate" DeleteSetting "zz", "hh", "lasttime" MsgBox "لقد تم تفعيل برنامجك لمدة" & nember_days & " يوما" salah Me.Name, "drm", "نموذج1" Else MsgBox "رقم التفعيل خاطئ" End If و هذا هو البرنامج مفتوح المصدر بصيغة 2010 و 2003 فترة تجريبية.rar فترة تجريبية2003.rar
-
بالنسبة لقفل الوحدات النمطية هذا من أجل إضافة طابع الحماية أكثر على البرنامج و سوف أقوم بإزالتها و شرح الكود كاملا و باقي الأسئلة سوف أتحدث عليها في شرح البرنامج لقد أحببت أن يقوم الجميع بتجربة البرنامج قبل الإطلاع على الأكواد و سوف أشرح الأكواد و أعطيكم نسخة مفتوحة المصدر تتحكمون بها كما تشاؤون آمين يا رب العالمين جزاك الله خير الجزاء أستاذنا العود و نحن اليوم في أمس الحاجة للدعاء أخي سيف اانسخة صالحة لكل الأوقات و ليس رمضان فقط و سوف أجيب عن باقي الأسئلة في الشرح
-
ظهور بداية ونهاية الشهر عند ادخال التاريخ
صالح حمادي replied to gadelrab's topic in قسم الأكسيس Access
السلام عليكم استعمل هذا الكود في حدث بعد التحديث لمربع نص التاريخ: Dim a As Integer, b As Integer Me.äÕ6 = "01-" & Format(Me.m5s1, "mm/yyyy") a = Format(Me.m5s1, "mm") If a = 4 Or a = 6 Or a = 9 Or a = 11 Then b = 30 ElseIf a = 2 Then If Format(Me.m5s1, "yyyy") Mod 4 = 0 Then b = 29 Else b = 28 End If Else b = 31 End If Me.äÕ8 = b & "-" & Format(Me.m5s1, "mm/yyyy") و هذا هو التعديل على المرفق: fffc.rar -
أولا جزاك الله خير الجزاء صديقي العزيز شفان على هذا الدعاء و على كل هذه الملاحظات ما شاء الله عليك مشيت معها كلها تمام. هنا يستطيع المبرمج تحديد مدة النسخة التجريبية من خلال الجدول tbl الموجود مع القاعدة و بالضبط في حقل nemberday و أنا هنا وضعت رقم 1 و تستطيع تغييره كما تشاء. نعم وجربت انا انا غيرت تاريخ الجهاز الى قبل ان افتح القاعدة ظهر معي رسالة بأن خطأ في تاريخ الجهاز وهذا جيد لكن .... كن معي بعد قليل " في الاسواق " بالإضافة إلى إكتشاف إرجاع التاريخ هو يكتشف أيضا إرجاع التوقيت حتى لو أنقصت دقيقة واحدة من ساعة الجهاز سوف يكتشف البرنامج ذلك. الريجستري عباره عن قاعدة بيانات في نظام التشغيل Windows .و يحتوي على معلومات أجهزة النظام و البرامج المثبتة والإعدادات، و بيانات حسابات المستخدمين على الكمبيوتر. و أي عملية تقوم بها على الجهاز تخزن بالريجستري . نعم أخي شفان أنا وضعت رقم النسخة ثابت 54321 و هذا من أجل تبسيط فهم الموضوع و التركيز على موضوع واحد و هو الحماية بالرجستري و عدم إدخال رقم الهارديسك و غيره في الموضوع. و هذه الملاحظة صديقي مهمة جدا و ممتازة شكرا جزيلا لك و بعد ما نعرف طريقة و آلية عمل هذا البرنامج نستطيع تغيير رقم النسخة من رقم ثابت إلى رقم الهارديسك مثلا لتكون حماية البرنامج مضاعفة.
-
السلام عليكم و رحمة الله تعالى و بركاته إخوتي الكرام حياكم الله و تقبل الله منا و منكم الصيامكم و القيام أضع بين أيديكم طريقة إنشاء نسخة تجريبية و حمايتها و قابلية تفعيلها و كل هذا بتوظيف الرجستري. خصائص البرنامج: 1- يكتشف إرجاع التاريخ 2- حتى لونزلت نسخة ثانية بعد إنتهاء التفعيل أو إنتهاء النسخة التجريبية فلن تعمل لأن الحماية مخزنة بالرجستري 3- رقم التفعيل يتغير من يوم إلى آخر حسب التاريخ 4- تستطيع تفعيل البرنامج بعد إنتهاء التفعيل بنفس النسخة 5- يحذف البرنامج الجدول الذي به رقم النسخة و كود الحماية مباشرة بعد أول تشغيل 6- يعطيك في أول تشغيل فترة تجريبية تحددها انت كما تشاء 7- رقم التفعيل مخبأة في مكان بالرجستري لا يمكن الحصول عليه هذا هو المرفق و أتمنى من الأعضاء أن يقوموا بتجربة المرفق و إعطائنا النتائج و من بعدها نقوم بشرح أكواد البرنامج: فترة تجريبية1.rar
-
صديقي @ابا جودى لا حظ هذا المرفق و أخبرني اين الإختلاف form.rar
- 10 replies
-
- حجم النموذج
- تكبير
-
(و1 أكثر)
موسوم بكلمه :
-
السلام عليكم و رحمة الله تعالى و بركاته أخي أبا جودي ما شاء الله عليك دائما مبدع و لكن لو تلاحظ المرفق في المشاركة التالية للموضوع السابق يقوم بنفس العمل حمل المرفق و جرب قم بالتكبير و التصغير و سوف تلاحظ ذلك
- 10 replies
-
- 1
-
- حجم النموذج
- تكبير
-
(و1 أكثر)
موسوم بكلمه :
-
كل عام و الأمة الإسلامية بخير و عافية إن شاء الله بمناسبة هذا الشهر الفضيل لا يسعنا إلا أن, اللهم أجمع شمل المسلمين في كل مكان و وحد صفهم و أرفع رايتهم يا رب العالمين
- 21 replies
-
- كل عام وانتم بخير
- تهنئة من القلب
-
(و2 أكثر)
موسوم بكلمه :
-
جازى الله جميع القائمين على هذا الصرح خير الجزاء إن شاء الله
-
جزاكم الله كل خير أستاذ جعفر و الأستاذ تشفان
- 18 replies
-
- vbacode
- مساعد اكواد برمجة اكسس
-
(و2 أكثر)
موسوم بكلمه :
-
هذه الطريقة لا تغير أيقونة البرنامج الخارجية.
-
شكرا جزيلا أخي تشفان هديتك رائعة و مقبولة إنشاء الله لقد حملت نسخة من قبل من هذا البرنامج و لكنه لم يشتغل معي أما هذه النسخة فتعمل بشكل ممتاز برافو عليك أخي تشفان
-
السلام عليكم حسب علمي يمكن إنشاء اختصار للبرنامج بسطح المكتب و تغيير أيقونته بإستعمال هذا الكود: With CreateObject("WScript.Shell") With .CreateShortcut(.SpecialFolders("Desktop") & "\Test Database.lnk") .TargetPath = "f:\aa\Test.accdb" .WindowStyle = 1 .Hotkey = "" .IconLocation = "f:\aa\arabic.BMP, 0" .Description = "Test Icon Substitution" .WorkingDirectory = "f:\aa\" .Save End With End With أما تغيير أيقونته مباشرة فلم تمر عليا من قبل و الله أعلى و أعلم.
-
الله يحفظك أخي إن شاء الله. الله يكون في عوننا على تكملة باقي الدروس
-
السلام عليكم لقد أضفت جميع أنواع وسيطات الرسائل هنا في هذا الدرس:
-
الدرس الثامن: دوال الرسائل هذا الدرس مخصص لشرح دوال الرسائل: MsgBox: تستخدم هذه الدالة من أجل عرض رسالة في مربع حوار. MsgBox (سياق, ملف التعليمات, العنوان, أزرار , النص) النص: (مطلوب) هو نص الرسالة التي ستعرض في مربع الحوار أزرار: (اختياري) هو تعبير رقمي يحدد نوع الازرار التي يجب ان تعرض العنوان: و يمثل عنوان مربع الحوار ملف التعليمات:(اختياري) تعبير سلسله يعرف ملف التعليمات لتوفير تعليمات تتبع للسياق لمربع الحوار. اذا تم توفير ملف التعليمات ، يجب ايضا توفير سياق . سياق: (اختياري) تعبير رقمي يمثل رقم محتوي التعليمات المعينه الي موضوع "التعليمات" الملائمه حسب الكاتب التعليمات. اذا تم توفير سياق ، يجب ايضا توفير ملف التعليمات . وضعيات الوسيطة أزرار: 0 عرض زر موافق فقط. 1 عرض الأزرار موافق و إلغاء الأمر . 2 عرض الأزرار إحباط + حاول مره أخري + تجاهل . 3 عرض الأزرار نعم + لا + إلغاء الأمر . 4 عرض الأزرار نعم + لا . 5 عرض الأزرار إعاده المحاوله + إلغاء الأمر . 16 عرض أيقونة رساله هامه . 32 تعرض أيقونة التحذير و الإستعلام . 48 عرض رمز رساله تحذير . 64 عرض رمز رساله معلومات. 0 الزر الأول هو الإفتراضي. 256 الزر الثاني هو الإفتراضي. 512 الزر الثالث هو الإفتراضي. 768 الزر الرابع هو الإفتراضي. 4096 نظام مشروط؛ يتم تعليق كافه التطبيقات حتي يستجيب المستخدم ل# مربع الرساله. 16384 إضافه الزر تعليمات إلي مربع الرساله 65536 يحدد إطار مربع الرساله كإطار المقدمه 524288 تتم محاذاه النص لليمين 1048576 يحدد يجب أن يظهر النص اليمين إلي اليسار للقراءه علي الأنظمه العربيه مثال: MsgBox "السلام عليكم", 3, "مرحبا" InputBox: يعرض مطالبة في مربع حوار و تنتظر قيام المستخدم بإدخال نص أو النقر فوق زر، و ترجع سلسلة تحتوي علي محتويات مربع النص. InputBox(«افتراضي»; «العنوان»; «مطالبة»; «xpos»; «ypos»; «helpfile»; «context») مطالبة : (مطلوب) عرض الرسالة في مربع الحوار العنوان: (اختياري) و يمثل عنوان مربع الحوار افتراضي: (اختياري) . عرض النص الإفتراضي في مربع النص. إذا حذفت الإفتراضي، يتم عرض مربع النص فارغ. xpos: (اختياري). تعبير رقمي يحدد، بوحده التويب المسافة الأفقية بين الحافة اليمني لمربع الحوار من الحافة اليسري للشاشة. ypos: (اختياري) تعبير رقمي يحدد، بوحده التويب، المسافه العمودية بين الحافة العلوية لمربع الحوار من أعلي الشاشة. ملف التعليمات:(اختياري) تعبير سلسله يعرف ملف التعليمات لتوفير تعليمات تتبع للسياق لمربع الحوار. اذا تم توفير ملف التعليمات ، يجب ايضا توفير سياق . سياق: (اختياري) تعبير رقمي يمثل رقم محتوي التعليمات المعينه الي موضوع "التعليمات" الملائمه حسب الكاتب التعليمات. اذا تم توفير سياق ، يجب ايضا توفير ملف التعليمات . مثال: Dim str As String str = InputBox("ادخل اسمك", "الاسم")
-
السلام عليكم بعد إذنك أستاذ جعفر أخي تابع هذه المشاركة ربما تجد بها ما يفيدك
-
ما راح أكلفكم كثير راح أجيب عشايا و أتعشى معاكم
-
هــــدية : تغيير دقة الشاشة ChangeAndGetScreenResolution
صالح حمادي replied to Shivan Rekany's topic in قسم الأكسيس Access
ههههه نحن نحتاج إلى أعظم من مبرمج محترف لحل هذه المشكلة. خليني أحكيلك حكاية صارت معي في الأيام السابقة: كانت بنتي الصغير "غفران" تبكي كثيرا خاصة في الليل قال لي أبي : "صالح إعمل لها برنامج يسكتها" لذلك أنا محتاجك في هذا البرنامج