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

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

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

الأمر XCopy  واحد من أومر ال Dos  وظيفته نسخ فلدر بكامل محتوياته قمت باستدعائه من خلال دالة Shell هكذا

Shell "Cmd.exe /C XCopy " & "D:\Icons C:\Icons"

طبعا هذا الأمر بحاجة الى أن يحدد المستخدم بعد تنفيذه إما  ( D ) وتعنى Directory  أو (F) وتعتى File

فاستخدمت الأمر SendKeys  هكذا

SendKeys "D"

ولكن تلك الحيلة لم تفلح فهل من حل آخر وجزاكم الله خيرا

  • Like 1
رابط هذا التعليق
شارك

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

اذا ابوعبدالله مصر على هذه الاداة بعينها فأنا  استخدم هذه الاداة بوسيط خارجي  ؛ استخدم ملف بات يتم تشغيله من داخل اكسس يمكن بهذه الطريقة تجاوز امان وندز عند الحاق وتسجيل المكتبات
الا ان كنت تريد اي اداة اخرى تقوم  بالغرض نفسه ؟

 

  • Like 1
رابط هذا التعليق
شارك

5 دقائق مضت, ابوخليل said:

اذا ابوعبدالله مصر

نعوذ بالله من الإصرار على المعاصى

7 دقائق مضت, ابوخليل said:

على هذه الاداة بعينها

فلأنه لا علم له بغيرها وقد فتحتم له بابا جديدا للعلم كما عودتمونا من كرمكم - وأسأل الله أن يفتح لكم أبواب الخير أجمع ويوفقكم لما يحب ويرضى دوما وأبدا- فها أنا بانتظار ماهو جديد على تليد لديكم

 

14 دقائق مضت, ابوخليل said:

يمكن بهذه الطريقة تجاوز امان وندز عند الحاق وتسجيل المكتبات

ولكن لى ملاحظة هنا فلم أكن أعنى في سؤالى أي مشاكل بينى وبين السيد ويندز فأنا أريد نسخ فولدر أيكونات داخل الملف الحاوى للبرنامج وهو على البرتشن D  ولكن إذا اتسع الأمر لاداة نتجاوز بها أمان الويندز فمرحبا بها وجزا الله خيرا من تفضل بها

 

رابط هذا التعليق
شارك

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

وسأعدل العنوان حتى يكون اشمل في الدلالة

بالنسبة لنسخ الملفات من مكان لآخر  فاكسس لديه اداة جاهزة وهي  filecopy

مثال :

 FileCopy "C:\filename", "C:\filename"

اما نسخ المجلدات

فالصق هذه في المكان المناسب حيث يمكنك جعلها  في النموذج  او في وحدة نمطية عامة ونقل حدث الزر الى النموذج

Private Type SHFILEOPSTRUCT
        hwnd As Long
        wFunc As Long
        pFrom As String
        pTo As String
        fFlags As Integer
        fAnyOperationsAborted As Long
        hNameMappings As Long
        lpszProgressTitle As String '  only used if FOF_SIMPLEPROGRESS
End Type
 
Private Const FOF_MULTIDESTFILES = &H1
Private Const FOF_CONFIRMMOUSE = &H2
Private Const FOF_SILENT = &H4
Private Const FOF_RENAMEONCOLLISION = &H8
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_WANTMAPPINGHANDLE = &H20
Private Const FOF_CREATEPROGRESSDLG = &H0
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_FILESONLY = &H80
Private Const FOF_SIMPLEPROGRESS = &H100
Private Const FOF_NOCONFIRMMKDIR = &H200
 
Private Const FO_MOVE = 1
Private Const FO_COPY = 2
Private Const FO_DELETE = 3
Private Const FO_RENAME = 4
 
Private Declare Function SHFileOperation Lib "shell32.dll" (lpFileOp As SHFILEOPSTRUCT) As Long
    
Public Function CopyFolder(ByVal strSource As String, ByVal strDest As String) As Boolean
'==========================================================================================
Dim varFOS As SHFILEOPSTRUCT
    With varFOS
        .fFlags = FOF_NOCONFIRMATION Or FOF_SILENT Or FOF_NOCONFIRMMKDIR
        .wFunc = FO_COPY
        .pFrom = strSource
        .pTo = strDest
    End With
    Call SHFileOperation(varFOS)
    CopyFolder = (varFOS.fAnyOperationsAborted = 0)
End Function
 
Private Sub Command1_Click()
 
    CopyFolder "d:\foldeName", "d:\foldeName"
 
End Sub

 

  • Like 4
رابط هذا التعليق
شارك

جزاك الله خيرا معلمنا وأستاذنا أبا خليل

أما عن الأداة FileCopy فهذه أعرفها  والحمد لله ولكن هذه بحاجة الى وقت فراغ لكتابتها :biggrin: حيث أنها تقوم بنسخ ملف واحد بكل مرة تخيل ان كان الفلدر يحوى 100 صورة مثلا .....

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

1- هل أحتاج مع هذا الكود الى تسجيل مكتبة ما

2-

&H2
&H1
&H8
&H100
&H200
'وغيرها

ماذا تعنى هذه الثوابت وكيف لى بمعرفتها    

قمت بالتجربة الآن وكل شيء على ما يرام

52 دقائق مضت, ابوخليل said:

Private Const FO_MOVE = 1 Private Const FO_COPY = 2 Private Const FO_DELETE = 3 Private Const FO_RENAME = 4

3- والآن كيف يمكننى الاستفادة من هذه الثوابت داخل الكود

وجزاك الله خيرا ورفع قدرك ورزقك البركة في الرزق والأجل

رابط هذا التعليق
شارك

&H2
&H1
&H8
&H100
&H200

هذه قيم هكس ,يمكنك معرفة ناتجها عن طريق استخدام كود مثل هذا  

MsgBox(&H20)

اما هذه

اقتباس

Private Const FO_MOVE = 1 Private Const FO_COPY = 2 Private Const FO_DELETE = 3 Private Const FO_RENAME = 4

فهي مثل  صاحبتها FO_COPY ويمكننا التطبيق من خلال اجراءات مشابهة نضيفها الى الوحدات والاجرءات السابقة  كالتالي :

Public Function ulkill(PATH As String, Optional RECYCLE As Boolean = True) As Boolean
    If Right(PATH, 1) = "\" Then PATH = Left(PATH, Len(PATH) - 1)
    If Len(Dir$(PATH)) <> 0 Or Len(Dir$(PATH, vbDirectory)) <> 0 Then
        Dim SHFileOp As SHFILEOPSTRUCT
        With SHFileOp
            .wFunc = FO_DELETE
            .pFrom = PATH
            .fFlags = FOF_NOCONFIRMATION Or FOF_FILESONLY
            If RECYCLE Then .fFlags = .fFlags Or FOF_ALLOWUNDO
        End With
        ulkill = (SHFileOperation(SHFileOp) = 0)
    End If
End Function
Private Sub ShellRenameFile(sOldName As String, sNewName As String)
   Dim SHFileOp As SHFILEOPSTRUCT
   Dim r As Long
     With SHFileOp
      .wFunc = FO_RENAME
      .pFrom = sOldName
      .pTo = sNewName
      .fFlags = FOF_SILENT Or FOF_NOCONFIRMATION
   End With
   r = SHFileOperation(SHFileOp)
End Sub
Private Sub zerDell_Click()
ulkill "d:\folderName"
End Sub
Private Sub RnmFile_Click()
ShellRenameFile "d:\oldName", "d:\newName"
End Sub

الأولى للحذف والثانية لتغيير التسمية

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

ولكني وضعت هذه الوحدات لمن يريد استخدامها

  المصدر

 

 

رابط هذا التعليق
شارك

  • 4 years later...

استاذي ابوخليل 

جزاك الله الجنة بغير حساب وغفر لك ولنا ولوالدينا ولأساتذتنا الكرام 

ام عهود زهرة الجنة حفظها الله أينما كانت - رمهان - جعفر - وووو... لا أريد أنسى أحداً مِنْ مَنْ افادونا وكانوا لنا سنداً كبيراً

احبكم في الله ولكم مني كل التقدير والعرفان والإحترام

بكري

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information