منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : لو سمحتوا واريد حل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
عندما أقوم بتحزيم البرنامج  بالستب فاكتوري يخرج ملف أكسس للقراءة فقط برجاء حل هذه المشكلة وشكرا
(27-11-19, 10:59 PM)nourmandour كتب : [ -> ]عندما أقوم بتحزيم البرنامج  بالستب فاكتوري يخرج ملف أكسس للقراءة فقط برجاء حل هذه المشكلة وشكرا

اول مرة لا أجد حل في المنتدي أين أهل الخبرة
اخي يبدو ان هذا يحدث بسبب نظام الامان في ويندوز
ولتخطيه يجب ان تمنح الاذن  لبرنامجك بالوصول الى الملف للقراءة والكتابة

ولفعل هذا اضف الكود التالي الى برنامجك

كود :
Sub AddFileSecurity(ByVal fileName As String, ByVal account As String, _
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

       ' Get a FileSecurity object that represents the
       ' current security settings.
       Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

       ' Add the FileSystemAccessRule to the security settings.
       Dim accessRule As FileSystemAccessRule = _
           New FileSystemAccessRule(account, rights, controlType)

       fSecurity.AddAccessRule(accessRule)

       ' Set the new access settings.
       File.SetAccessControl(fileName, fSecurity)

   End Sub

   Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String, _
     ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

       ' Get a FileSecurity object that represents the
       ' current security settings.
       Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

       ' Remove the FileSystemAccessRule from the security settings.
       fSecurity.RemoveAccessRule(New FileSystemAccessRule(account, _
           rights, controlType))

       ' Set the new access settings.
       File.SetAccessControl(fileName, fSecurity)

   End Sub

ثم قبل ان تحاول التعامل مع الملف استخدم هذا الكود لتمنح برنامجك الوصول للملف
بمعنى انك تلغي حماية الملف التي تمنعك من التعديل 
كود :
RemoveFileSecurity("d:\s.mdb", System.Security.Principal.WindowsIdentity.GetCurrent().Name, _
FileSystemRights.ReadData, AccessControlType.Deny)

اتمنى ينفعك الحل ويكون صحيح
(28-11-19, 03:38 PM)CrazyMe كتب : [ -> ]اخي يبدو ان هذا يحدث بسبب نظام الامان في ويندوز
ولتخطيه يجب ان تمنح الاذن  لبرنامجك بالوصول الى الملف للقراءة والكتابة

ولفعل هذا اضف الكود التالي الى برنامجك

كود :
Sub AddFileSecurity(ByVal fileName As String, ByVal account As String, _
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

       ' Get a FileSecurity object that represents the
       ' current security settings.
       Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

       ' Add the FileSystemAccessRule to the security settings.
       Dim accessRule As FileSystemAccessRule = _
           New FileSystemAccessRule(account, rights, controlType)

       fSecurity.AddAccessRule(accessRule)

       ' Set the new access settings.
       File.SetAccessControl(fileName, fSecurity)

   End Sub

   Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String, _
     ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

       ' Get a FileSecurity object that represents the
       ' current security settings.
       Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

       ' Remove the FileSystemAccessRule from the security settings.
       fSecurity.RemoveAccessRule(New FileSystemAccessRule(account, _
           rights, controlType))

       ' Set the new access settings.
       File.SetAccessControl(fileName, fSecurity)

   End Sub

ثم قبل ان تحاول التعامل مع الملف استخدم هذا الكود لتمنح برنامجك الوصول للملف
بمعنى انك تلغي حماية الملف التي تمنعك من التعديل 
كود :
RemoveFileSecurity("d:\s.mdb", System.Security.Principal.WindowsIdentity.GetCurrent().Name, _
FileSystemRights.ReadData, AccessControlType.Deny)

اتمنى ينفعك الحل ويكون صحيح
الف شكر علي اهتمامك و الرد على  ولاكن للأسف لم ينفع هذا الكود مع
كتجربة أخي الكريم
حاول .. من مسار قاعدة البيانات بالقرص C
كليك يمين الماوس
و تكمل الباقي ..
ملاحظة : نفس الخطوات تقوم بها مع مجلد التحزيم الحامل لملفات مشروعك بالقرص C
تحياتي
(29-11-19, 10:54 PM)عبد العزيز البسكري كتب : [ -> ]
كتجربة أخي الكريم
حاول .. من مسار قاعدة البيانات بالقرص C
كليك يمين الماوس
و تكمل الباقي ..
ملاحظة : نفس الخطوات تقوم بها مع مجلد التحزيم الحامل لملفات مشروعك بالقرص C
تحياتي

الف شكر انا عملت الطريقة دي ونفع علي c بس بردة بعد التحزيم البرنامج بيعمل الملف للقراءة رغم اني عملت ذي ما سيادتك قلت قبل التحزيم
السلام عليكم
بصراحة صعب تحديد سبب المشكلة , ممكن تجرب هذا الكود وترجع قاعدة البيانات الى خصائصها العادية
PHP كود :
Private Sub Form1_Load(sender As ObjectAs EventArgsHandles MyBase.Load
        SetAttr
("D:\test.txt"FileAttribute.Normal)
    End Sub 

قم بتغير المسار والاسم
السلام عليكم ورحمة الله وبركاته
سبب هذه المشكلة ليس من التحزيم او بجهازك
انما بجهاز الطرف الاخر حيث الامان على دريف C كمستوى عالي لذلك
يتم تحويل اى مجلد غير معرف او مصرح له لوضع طبقاً لصلحيات التى تتاح له
فقط كل ما عليك فعله املاً من اثنين
1- تغيير مسار تثبيت البرنامج على D او اى دريف اخر وستجد تم حل المشكلة
2- هو تنفيذ فى مشروعك عند تشغيل البرنامج لاول مرة اعطاء صلحيات المجلد للقراءة والكتابة وما شبه من خلال cmd
وانصحك بالاختيار الاول ولضمان عدم فقدان قاعدة البيانات تحت اى ظروف لدي المستخدم
الامر الاخير وحل كا امراً ثالث وهو اعطاء الصلاحيات كما اشار اليه عبد العزيز البسكري يدوياً عند المستخدم بجهازه بعد تثبيت البرنامج
لان مش من الطبيعي قول تغيير قوة الامان على دريف C لحل المشكلة فالافضل هو ان تعدل صلاحيات الملف فقط بعد التثبيت
فالابسط والاسهل لك يمكنك العمل عليه
انا عاجز عن الشكر لسيادتكم وعلي الاهتمام برد عليه ولو لم تحل المشكلة بس كفاية انكم حولتم مع الف الف شكر