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

نسخ الملفات باستخدام الدالة Api CopyFileEx مع اظهار حالة النسخ فى Progressbar

اذهب الى الأسفل

نسخ الملفات باستخدام الدالة Api CopyFileEx مع اظهار حالة النسخ فى Progressbar Empty نسخ الملفات باستخدام الدالة Api CopyFileEx مع اظهار حالة النسخ فى Progressbar

مُساهمة من طرف جورج صبحى الأربعاء نوفمبر 28, 2018 11:20 am

ستخدم المثال التالي الدالة Api CopyFileEx التي تسمح لنا بنسخ ملف وإظهار حالة التقدم الملف ، في عنصر تحكم Progressbar
كما يسمح أيضًا بتصور الحالة النهائية للنتيجة ما إذا انتهت بشكل صحيح أو حدث خطأ أو تم إلغاؤه.

نسخ الملفات باستخدام الدالة Api CopyFileEx مع اظهار حالة النسخ فى Progressbar 475384806

ضع عناصر التحكم التالية على نموذج form1:

مربع النص Text1: هنا يجب الإشارة إلى مسار المصدر من الملف
مربع النص Text2: مسار الوجهة
أداة التسمية Label1 : يعرض عنصر التحكم في التسمية هذا حالة عملية النسخ ، إذا كان قد تم الانتهاء من صحته ، أو إذا تم إلغاؤه أو كان هناك خطأ (وهو باللون الأحمر)
Progressbar1 : شريط التقدم لمشاهدة التقدم: الخاصية Max ضع قيمتها 100 و Min Property في 0 (يتم افتراضياً بالفعل)
Command1 : لبدء عملية النسخ
Command2 : إلغاء عملية النسخ.

كتابة الشفرات

افتح وحدة نمطية módulo واكتب الشفرات التالية :

الكود:
Option Explicit

'الاعلان عن متغيرات Api CopyFileEx
'*************************************
Public Const PROGRESS_CANCEL = 1
Public Const PROGRESS_CONTINUE = 0
Public Const PROGRESS_QUIET = 3
Public Const PROGRESS_STOP = 2
Public Const COPY_FILE_FAIL_IF_EXISTS = &H1
Public Const COPY_FILE_RESTARTABLE = &H2

'الاعلان عن الدالة Api CopyFileEx
Public Declare Function CopyFileEx Lib "kernel32.dll" Alias "CopyFileExA" ( _
    ByVal lpExistingFileName As String, _
    ByVal lpNewFileName As String, _
    ByVal lpProgressRoutine As Long, _
    lpData As Any, _
    ByRef pbCancel As Long, _
    ByVal dwCopyFlags As Long) As Long

' الاعلان عن متغير لالغاء عملية النسخ
Public Cancelar As Long

'إنشاء وظيفة للنسخ
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Function CopiarArchivo(ByVal TotalFileSize As Currency, ByVal _
                                   TotalBytesTransferred As Currency, _
                                   ByVal StreamSize As Currency, _
                                   ByVal StreamBytesTransferred As Currency, _
                                   ByVal dwStreamNumber As Long, _
                                   ByVal dwCallbackReason As Long, _
                                   ByVal hSourceFile As Long, _
                                   ByVal hDestinationFile As Long, _
                                   ByVal lpData As Long) As Long

    
    'إظهار حالة التقدم
    Form1.ProgressBar1.Value = CStr(Int((TotalBytesTransferred * 10000) / _
                                            (TotalFileSize * 10000) * 100))
    
    DoEvents
  
    CopiarArchivo = PROGRESS_CONTINUE
End Function
 



فى حدث النقر على زر التحميل نكتب الشفرة التالية :

الكود:
 Private Sub Command1_Click()
    Dim Ret As Long

    Cancelar = 0
   
 
    Label1.Caption = "جاري نسخ الملف: " & Text1 & " الى: " & Text2
   
   
    Ret = CopyFileEx(Trim$(Text1.Text), Trim$(Text2.Text), AddressOf CopiarArchivo, _
                                ByVal 0&, Cancelar, COPY_FILE_RESTARTABLE)
   
 
    Label1.Caption = "حالة النسخ: " + IIf(Ret = 0, _
                        "(Error/Abortado)", _
                        "تم النسخ")

End Sub

أما فى زر الغاء النسخ نكتفي بالشفرة التالية

الكود:
Private Sub Command2_Click()
 
    Cancelar = 1
End Sub

جورج صبحى
جورج صبحى
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 127
النقاط : 259
التقيم : 6
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

نسخ الملفات باستخدام الدالة Api CopyFileEx مع اظهار حالة النسخ فى Progressbar Empty رد: نسخ الملفات باستخدام الدالة Api CopyFileEx مع اظهار حالة النسخ فى Progressbar

مُساهمة من طرف أحمد مناع الأحد ديسمبر 02, 2018 2:02 pm

تحياتى [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

نسخ الملفات باستخدام الدالة Api CopyFileEx مع اظهار حالة النسخ فى Progressbar Empty رد: نسخ الملفات باستخدام الدالة Api CopyFileEx مع اظهار حالة النسخ فى Progressbar

مُساهمة من طرف المبرمج الطموح الإثنين يناير 14, 2019 12:29 pm

كود جميع شكرا جزيلا
المبرمج الطموح
المبرمج الطموح
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 207
النقاط : 368
التقيم : 17
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى