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

منع تغيير اسم البرنامج


إذهب إلى الإجابة الإجابة بواسطة منتصر الانسي,

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

قام بنشر

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

هل استطيع منع تغيير اسم البرنامج ؟

مع اطيب تحية للجميع

قام بنشر

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

طلبك غير واضح أبداً أخي جيلاني 😇 ..

يا ريت تدعم طلبك بتوضيح أكثر وحتى لو مدعوم بملف أو صورة على الأقل .

  • تمت الإجابة
قام بنشر

ملف أكسس مثله مثل أي ملف آخر داخل ويندوز يمكن لأي شخص تعديل إسمه لذا فلا يمكن منع أي مستخدم من تعديل إسمه ولكن يمكننا تقييد تشغيل البرنامج إلا إذا كان بالإسم الذي نريد

في المرفق نفس الملف الذي أرسلته جرب فتحه بالإسم gelani وأغلقه وغير إسمه إلى أي بإسم آخر وشاهد النتيجة

فهل يناسبك هذا الحل؟

gelani.rar

  • Like 3
قام بنشر

رائع جدا حفظك الله خاصة انه ينبه الى الاسم الأصلي للبرنامج ويسهل إعادة التسمية .
مع خالص الشكر والتقدير 

قام بنشر

وتكملة لمسيرة الأفكار .. ومشاركة مع مهندسنا العزيز @منتصر الانسي 🙂 ..

تم تعديل الكود ليقوم بتعديل اسم البرنامج بنفسه ثم يعيد تشغيل البرنامج مرة أخرى 🙂 

Private Sub Form_Load()
    Const strCorrectName As String = "gelani" ' اكتب هنا الاسم الصحيح بدون الامتداد
    Dim currentPath As String
    Dim targetFullName As String
    Dim batchFilePath As String
    Dim fso As Object
    Dim ts As Object
    
    ' التحقق من مطابقة اسم الملف الحالي للاسم المطلوب
    If CurrentProject.Name <> strCorrectName & ".accdb" Then
        Label0.Caption = "جاري تعديل اسم البرنامج..."
        
        currentPath = CurrentProject.Path
        targetFullName = currentPath & "\" & strCorrectName & ".accdb"
        batchFilePath = currentPath & "\rename_db.bat"
        
        ' إنشاء الملف الدفعي لتنفيذ إعادة التسمية بعد الإغلاق
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.CreateTextFile(batchFilePath, True)
        
        ' كتابة الأوامر داخل الملف الدفعي
        ts.WriteLine "@echo off"
        ts.WriteLine "chcp 65001 > nul"
        ts.WriteLine "timeout /t 2 /nobreak > nul" ' انتظار إغلاق ملف أكسس تماماً لفك القفل
        ts.WriteLine "cd /d """ & currentPath & """"
        ts.WriteLine "ren """ & CurrentProject.Name & """ """ & strCorrectName & ".accdb"""
        ts.WriteLine "start """" """ & targetFullName & """" ' إعادة تشغيل القاعدة بالاسم الجديد
        ts.WriteLine "del ""%~f0""" ' حذف الملف الدفعي بعد الانتهاء
        ts.Close
        
        ' تنبيه المستخدم قبل الإغلاق والتعديل
        MsgBox "تم اكتشاف أن اسم قاعدة البيانات غير صحيح!" & vbCrLf & _
               "سيتم إغلاق البرنامج وتعديله تلقائياً إلى: " & strCorrectName & ".accdb", _
               vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "تعديل اسم البرنامج"
        
        ' تشغيل الملف الدفعي في الخلفية
        Shell "cmd.exe /c """ & batchFilePath & """", vbHide
        
        ' إغلاق قاعدة البيانات الحالية
        DoCmd.Quit
    Else
        Label0.Caption = "الإسم صحيح"
    End If
End Sub

 

gelani.accdb

  • Like 3
قام بنشر

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

أجمل تحيه أكررها ولك ولجميع أعضاء هذا المنتدى الرائع .

قام بنشر

لا حظت انني اذا عدلت الاسم الى اللغة العربية لا يعمل .
هل في الكود ما يمنع استخدام التسمية عربي ؟
تحياتي وتقديري لجهودكم 

تظهر هكذا

رساله.PNG

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

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

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

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information