الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعليمة FileCopy

بدأه kafi في 9 يوليو 2012 · 10 رد · 1,322 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

يقوم البرنامج التالي بالتأكد من وجود الملف المسمى rockey4Nd.dll ( الخاص بالدنغل) من وجوده في المسار C:\windows

في حال عدم الوجود، تظهر شاشة تخبر المستخدم بعدم وجود الملف، وهناك زر على تلك الشاشة باسم نسخ يعمل على نسخ الملف المدكور وفق الكود التالي

Dim SourceFile, DestinationFile

SourceFile = Me.sPath

DestinationFile = "c:\windows\system\Rockey4ND.dll"

FileCopy SourceFile, DestinationFile

كان الكود يعمل مائة بالمائة على نظام الويندوز xp ، وعند تجريب البرنامج على ويندوز 7 تفاجئت بعدم عمل الكود

ارجو تعديل الكود في المثال المرفق

المثال معمول على اكسس 2007

والف شكر

kafi كتب:

بسم الله الرحمن الرحيم

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

يقوم البرنامج التالي بالتأكد من وجود الملف المسمى rockey4Nd.dll ( الخاص بالدنغل) من وجوده في المسار C:\windows

في حال عدم الوجود، تظهر شاشة تخبر المستخدم بعدم وجود الملف، وهناك زر على تلك الشاشة باسم نسخ يعمل على نسخ الملف المدكور وفق الكود التالي

Dim SourceFile, DestinationFile

SourceFile = Me.sPath

DestinationFile = "c:\windows\system\Rockey4ND.dll"

FileCopy SourceFile, DestinationFile

كان الكود يعمل مائة بالمائة على نظام الويندوز xp ، وعند تجريب البرنامج على ويندوز 7 تفاجئت بعدم عمل الكود

ارجو تعديل الكود في المثال المرفق

المثال معمول على اكسس 2007

والف شكر

Q82.rar

تم تعديل هذه المشاركة بواسطة kafi في 9 يوليو 2012 في 19:33

#2

اخي الفاضل

الكود لا يحتاج الى تعديل فهو يعمل على كل انظمة الويندوز سواء XP او WIN 7

ولكن تحتاج الى تعديل الأذونات والصلاحيات في الويندوز 7 لأنها تختلف عن الـ XP لأنه تم اضافة ميزات جديده في الويندوز 7 ومن ضمن الاضافات ( تشغيل كمسئول ) وهو الذي يتحكم في جميع الحسابات في الويندوز

لذا فإنه عند استخدام اي اوامر مثل امر النسخ FileCopy فإنه يمنع ذلك ويظهر رسالة رقم 70 او 75 وهي خاصة بالإذونات

"70" Run_time error

Permission denied

وتلاحظ ذلك عندما تقوم بنسخ ملف من مجلد ولصقه في مجلد آخر حيث يظهر لك لوحة الأذونات الخاصة بالمسئول وعند الموافقة يتم لصق او نقل الملف المطلوب وكما اسلفت لك هذه الخاصية متعلقة بالويندوز 7 .

وللتجربة قم بعمل التالي :

1. افتح برنامج الأكسيس 2007 من مجلد البرامج كمسئول

C:\Program Files\Microsoft Office\Office12\MSACCESS.EXE

2. افتح نفس قاعدة البيانات التي بها الكود الخاص بالنسخ

3. ستجد ان امر النسخ قد تم ونسخ الملف الى المكان المطلوب

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 10 يوليو 2012 في 22:41

#3

شكرا اخت زهرة على اجابتك

ولكن جربت ما تفضلت به حضرتك، وشغلت برنامج الاكسس كمسؤول، ثم قمت بتشغيل برنامجي ولكن للاسف لم ينفد الكود المتعلق بالنسخ

حاولت تتبع التنفيد، فوجدت ان رسالة الخطأ هي path/file access error

اخت زهرة بارك الله فيك، ان الغاية من العملية برمتها هي مساعدة بعض المستثمرين الدين لا يجدون القدرة على نسخ ملف من مكان الى اخر، لدلك قمت باعداد نافدة تبحث عندما لا يكون الملف موجود ان تظهر له رسالة، وما على المستثمر سوى الضغط على زر نسخ ..... وتنحل الامور

ارجو ان تكون قد استطعت توصيل ما اسعى اليه، وهل هناك حل للتغلب على صلاحيات نظام الويندوز 7 من اجل عدم تعقيد الامور على المستثمر، في حال كان تشغيل البرنامج على نظام ويندوز 7 وليس xp

والف الف شكر

post-32358-002358100 1341987871_thumb.jp

المرفقات
1.jpg

تم تعديل هذه المشاركة بواسطة kafi في 11 يوليو 2012 في 09:25

#4

تحية طيبة

أخى الكريم فقط قم بتعديل User Account control Setting كالتالى

post-96562-095668800 1342040677_thumb.pn

المرفقات
UAC.png
1
#5

شكرا اخي هاني عوض على اجابتك

ولكن ما تفضلت به قمت بتجربته، ولكن نفس المشكلة ما زال الملف لا يتم نسخه.

ثم ما اريده ليس ان يتم تعديل على صلاحيات المستخدم بالويندوز فانا اسعى جاهدا الى تبسيط الامور على المستخدم، الدي لا يجيد نسخ الملف من مكان الى مكان آخر..... لدلك اسعى على التغلب على المشاكل برمجيا

ارجو المساعدة في ايجاد حل برمجي

والف شكر

تم تعديل هذه المشاركة بواسطة kafi في 12 يوليو 2012 في 00:55

#6

لايمكن للأكسس عمل ذلك..

حتى لغات البرمجة المتقدمة تتطلب أذونات للمستخدم..

لذا فى Visual studio مثلاً يتم التغلب عليها من خلال عمل Application Manifest File

وجعل التطبيق Highest Available Permission

لماذا لا تجرب Xcopy

Call Shell("xcopy /y SourcPath DestPath, 3)
#7
kafi كتب:

شكرا اخت زهرة على اجابتك

ولكن جربت ما تفضلت به حضرتك، وشغلت برنامج الاكسس كمسؤول، ثم قمت بتشغيل برنامجي ولكن للاسف لم ينفد الكود المتعلق بالنسخ

حاولت تتبع التنفيد، فوجدت ان رسالة الخطأ هي path/file access error

اخت زهرة بارك الله فيك، ان الغاية من العملية برمتها هي مساعدة بعض المستثمرين الدين لا يجدون القدرة على نسخ ملف من مكان الى اخر، لدلك قمت باعداد نافدة تبحث عندما لا يكون الملف موجود ان تظهر له رسالة، وما على المستثمر سوى الضغط على زر نسخ ..... وتنحل الامور

ارجو ان تكون قد استطعت توصيل ما اسعى اليه، وهل هناك حل للتغلب على صلاحيات نظام الويندوز 7 من اجل عدم تعقيد الامور على المستثمر، في حال كان تشغيل البرنامج على نظام ويندوز 7 وليس xp

والف الف شكر

بارك الله بك اخي الفاضل هاني على المشاركة

اخي الفاضل : كافي

يبدو انك لم تطبق الشرح السابق بالطريقة الصحيحة الآن لاحظ التالي وقم بالتطبيق

1. لاحظ معي ان المجلد ليس به ملفك حتى الآن

post-15367-039008300 1342069713_thumb.gi

2. افتح مجلد البرامج الذي به برنامج الأكسيس ثم اضغط بالماوس الأيمن على برنامج الأكسيس واختر نشغيل كمسئول

post-15367-076668400 1342069730_thumb.gi

3. الآن افتح قاعدة البيانات الخاصة بك واضغط على امر النسخ وسيظهر لك نموذج التحقق من صحة النسخ بأنه تم نسخ الملف الى المجلد

post-15367-021369800 1342069822_thumb.gi

4. دعنا نتأكد من المجلد هل تم نسخ الملف فعلا ام لا

post-15367-017590400 1342069888_thumb.gi

بالفعل تم نسخ الملف الى المجلد المطلوب

za-Q82.rar

بالتوفيق

المرفقات
AC0.gifAC1.gifAC2.gifAC3.gif
1
#8

السلام عليكم

اخت زهرة نجح الحل الذي تفضلت به ، وكذلك الحل الذي تفضل به الاخ هاني عوض والف شكر

ولكن هذان حلان صعب شرح احدهما للمستثمر العادي.

إن الغاية من زر نسخ الملف هو للتبسيط على المستثمر.

ان كان لا يوجد حل برمجي للتغلب على الاذونات والصلاحيات في نظام ويندوز 7

فأنا افكر بأن ابقي على زر النسخ في حال كان المستثمر يعمل على نظام ويندوز XP ، وان كان يعمل على نظام ونيدوز 7 ، نقوم بإخفاء الزر المتعلق بالنسخ

كيف يمكن معرفة نظام التشغيل الذي يعمل عليه المستثمر؟

والف شكر

#9
kafi كتب:

السلام عليكم

اخت زهرة نجح الحل الذي تفضلت به ، وكذلك الحل الذي تفضل به الاخ هاني عوض والف شكر

ولكن هذان حلان صعب شرح احدهما للمستثمر العادي.

إن الغاية من زر نسخ الملف هو للتبسيط على المستثمر.

ان كان لا يوجد حل برمجي للتغلب على الاذونات والصلاحيات في نظام ويندوز 7

فأنا افكر بأن ابقي على زر النسخ في حال كان المستثمر يعمل على نظام ويندوز XP ، وان كان يعمل على نظام ونيدوز 7 ، نقوم بإخفاء الزر المتعلق بالنسخ

كيف يمكن معرفة نظام التشغيل الذي يعمل عليه المستثمر؟

والف شكر

تفضل اخي الكريم

لمعرفة نوع نظام التشغيل الذي يعمل عليه المستثمر اتبع الطريقة التالية

1. قم بإنشاء مربع نص عادي واعطه اي اسم مثلا txtOperatingSystem

2. في النموذج ضع هذه الوظيفة الخاصة

Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

Private Declare Function apiGetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As Any) As Long
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32_NT = 2

Private Function myOS()
Dim OSv As OSVERSIONINFO
OSv.dwOSVersionInfoSize = Len(OSv)
If CBool(apiGetVersionEx(OSv)) Then

With OSv

If .dwPlatformId = VER_PLATFORM_WIN32_NT And .dwMajorVersion = 5 And .dwMinorVersion = 1 Then
myOS = "XP"
   Me.txtOperatingSystem = "Windows XP"
End If

If .dwPlatformId = VER_PLATFORM_WIN32_NT And .dwMajorVersion = 6 Then
    Me.txtOperatingSystem = "Windows 7"
End If
End With
End If
End Function

وعند حدث التحميل للنموذج قم بإستدعاء الوظيفة بهذه الطريقة

Private Sub Form_Load()
Call myOS
End Sub

الآن عند فتح النموذج سيظهر لك في مربع النص نوع نظام التشغيل سواء Windows XP او Windows 7 في مربع النص حسب نوع النظام الذي موجود به البرنامج الخاص بك

كل ما عليك الأن هو انشاء حدث للتحقق فإن كان اسم النظام في مربع النص هو Windows 7 فقم بإخفاء زر امر النسخ وعدى ذلك اتركه بدون اخفاء عندما يكون النظام Windows XP

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 15 يوليو 2012 في 08:39

1
#10

الف الف الف شكر اخت زهـــــرة

على ماتفضلت به وعلى استمرارك في التواصل الى أن تم الوصول الى الحل المنطقي والسليم

و السلام عليكم

#11

الأخ كافي أرجو الاطلاع على الموضوعين التاليين ففيهما مرادك أكيد فأنا لم أقم بالتجربة بعد

http://withdotnet.ne...rking-with-uac/

والثاني أهم

http://vb4arab.com/v...ead.php?t=12121

أتمنى لك التوفيق

كما أتمنى من أساتذة المنتدى التجريب على الأكسس وإعطائنا النتيجة

تم تعديل هذه المشاركة بواسطة zaher-t في 15 يوليو 2012 في 04:44

مواضيع مشابهة