أبو عبدالله الحلوانى قام بنشر أبريل 29, 2016 قام بنشر أبريل 29, 2016 السلام عليكم ورحمة الله وبركاته الأمر XCopy واحد من أومر ال Dos وظيفته نسخ فلدر بكامل محتوياته قمت باستدعائه من خلال دالة Shell هكذا Shell "Cmd.exe /C XCopy " & "D:\Icons C:\Icons" طبعا هذا الأمر بحاجة الى أن يحدد المستخدم بعد تنفيذه إما ( D ) وتعنى Directory أو (F) وتعتى File فاستخدمت الأمر SendKeys هكذا SendKeys "D" ولكن تلك الحيلة لم تفلح فهل من حل آخر وجزاكم الله خيرا 1
ابوخليل قام بنشر أبريل 29, 2016 قام بنشر أبريل 29, 2016 وعليكم السلام اذا ابوعبدالله مصر على هذه الاداة بعينها فأنا استخدم هذه الاداة بوسيط خارجي ؛ استخدم ملف بات يتم تشغيله من داخل اكسس يمكن بهذه الطريقة تجاوز امان وندز عند الحاق وتسجيل المكتبات الا ان كنت تريد اي اداة اخرى تقوم بالغرض نفسه ؟ 1
أبو عبدالله الحلوانى قام بنشر أبريل 29, 2016 الكاتب قام بنشر أبريل 29, 2016 5 دقائق مضت, ابوخليل said: اذا ابوعبدالله مصر نعوذ بالله من الإصرار على المعاصى 7 دقائق مضت, ابوخليل said: على هذه الاداة بعينها فلأنه لا علم له بغيرها وقد فتحتم له بابا جديدا للعلم كما عودتمونا من كرمكم - وأسأل الله أن يفتح لكم أبواب الخير أجمع ويوفقكم لما يحب ويرضى دوما وأبدا- فها أنا بانتظار ماهو جديد على تليد لديكم 14 دقائق مضت, ابوخليل said: يمكن بهذه الطريقة تجاوز امان وندز عند الحاق وتسجيل المكتبات ولكن لى ملاحظة هنا فلم أكن أعنى في سؤالى أي مشاكل بينى وبين السيد ويندز فأنا أريد نسخ فولدر أيكونات داخل الملف الحاوى للبرنامج وهو على البرتشن D ولكن إذا اتسع الأمر لاداة نتجاوز بها أمان الويندز فمرحبا بها وجزا الله خيرا من تفضل بها
ابوخليل قام بنشر أبريل 29, 2016 قام بنشر أبريل 29, 2016 حتى لا يتشعب الموضوع سنبقى في مجال نسخ الملفات والمجلدات داخل اكسس وسأعدل العنوان حتى يكون اشمل في الدلالة بالنسبة لنسخ الملفات من مكان لآخر فاكسس لديه اداة جاهزة وهي 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 4
أبو عبدالله الحلوانى قام بنشر أبريل 29, 2016 الكاتب قام بنشر أبريل 29, 2016 جزاك الله خيرا معلمنا وأستاذنا أبا خليل أما عن الأداة FileCopy فهذه أعرفها والحمد لله ولكن هذه بحاجة الى وقت فراغ لكتابتها حيث أنها تقوم بنسخ ملف واحد بكل مرة تخيل ان كان الفلدر يحوى 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- والآن كيف يمكننى الاستفادة من هذه الثوابت داخل الكود وجزاك الله خيرا ورفع قدرك ورزقك البركة في الرزق والأجل
ابوخليل قام بنشر أبريل 29, 2016 قام بنشر أبريل 29, 2016 &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 الأولى للحذف والثانية لتغيير التسمية علما ان اكسس يشتمل على دالتين تقومان بالعمل نفسه .. هنا ولكني وضعت هذه الوحدات لمن يريد استخدامها المصدر
bakry kassala قام بنشر ديسمبر 2, 2020 قام بنشر ديسمبر 2, 2020 استاذي ابوخليل جزاك الله الجنة بغير حساب وغفر لك ولنا ولوالدينا ولأساتذتنا الكرام ام عهود زهرة الجنة حفظها الله أينما كانت - رمهان - جعفر - وووو... لا أريد أنسى أحداً مِنْ مَنْ افادونا وكانوا لنا سنداً كبيراً احبكم في الله ولكم مني كل التقدير والعرفان والإحترام بكري
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.