تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 5 از 5

نام تاپيک: پیدا کردن زمان یک عمل مثل کپی یا ...

  1. #1
    اگه نباشه جاش خالی می مونه BabyBoy's Avatar
    تاريخ عضويت
    Jun 2006
    محل سكونت
    bed
    پست ها
    290

    13 پیدا کردن زمان یک عمل مثل کپی یا ...

    میخوام زمان یه عمل رو تو سیستم به دست بیارم یعنی وقتی برنامم داره یه سری فایل رو کپی یا پاک میکنه یه progsess شروع بشه به پر شدن و وقتی عمل کپی شدن تموم شد progsess هم پر بشه

    ممنون

  2. #2
    پروفشنال majj's Avatar
    تاريخ عضويت
    Sep 2006
    پست ها
    716

    پيش فرض

    میخوام زمان یه عمل رو تو سیستم به دست بیارم یعنی وقتی برنامم داره یه سری فایل رو کپی یا پاک میکنه یه progsess شروع بشه به پر شدن و وقتی عمل کپی شدن تموم شد progsess هم پر بشه

    ممنون
    با سلام
    کاری که من در سیستم عامل دیدم اینجوری که ابتدا اگه برای progsess مثلا تنظیم شده باشه روی 100 ابتدا شما تا
    90 اونو پر کن زمانی که به 90 رسید فایلتون رو کپی کنید بعد مجداا progsess رو فعال کنید اینجوری به نظر میرسه progsess با کپی فایل همزمان انجام میشه کارراحتی هم هست

  3. #3
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2007
    پست ها
    205

    پيش فرض

    میخوام زمان یه عمل رو تو سیستم به دست بیارم یعنی وقتی برنامم داره یه سری فایل رو کپی یا پاک میکنه یه progsess شروع بشه به پر شدن و وقتی عمل کپی شدن تموم شد progsess هم پر بشه

    ممنون
    زمان انجام یک عمل مثل کپی کردن فایل روی سیستم های مختلف فرق میکنه و روی یک سیستم هم ممکنه در زمان های مختلف فرق بکنه یعنی یکبار مثلا 1 ثانیه یک بار سیستم شلوغ تره و 2.5 ثانیه و ...
    به هر حال برای بدست آوردن این زمان توی ویبی میشه از API ی GetTickCount استفاده کرد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    البته همونطور که گفتم توی زمان های مختلف این زمان میتونه متفاوت باشه و برای ساختن یک Progress این روش جالبی نیست.
    واسه ساختن Progress میشه از API ی CopyFileEx استفاده کرد که در حین کپی کردن یک فایل بوسیله یک تابع CallBack , اون مقداری از عملیات که پیش رفته رو مدام به ما اعلام میکنه, یه Module درست کن و کد زیر رو داخلش کپی کن :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و برای استفاده از کد توی فرم ت کافیه تابع FileCopyProgress رو فراخوانی کنی.آرگومان اول آدرس فایل مبدا, دومی آدرس فایل مقصد. سومی هم اگه True باشه و فایل مقصد از قبل وجود داشته باشه عمل کپی انجام نمیشه:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با زدن دکمه ی Command1 , عمل کپی شروع میشه و تابع CopyProgressRoutine به طور پی در پی تا کامل شدن عمل کپی فراخوانی میشه و خطی که Bold ش کردم اجرا میشه و Tile فرم درصد رو از 0 تا 100 نشون میده.میتونی برای نشون دادن یک ProgressBar این خط کد رو به دلخواه عوض کنی و مقدار ProgressBar ی که توی فرم داری رو اضافه کنی یا هر کار دیگه..
    ضمن اینکه با فراخوای تابع CancelCopy در هر لحظه میشه عمل کپی شدن رو Cancel کرد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    -------------
    علت استفاده از نوع Curreny در تابع CallBack اینه که API ی CopyFileEx این پارامتر رو LARGE_INTEGER که هشت بایتی هست در نظر میگیره که توی VB نداریم و چون این پارامتر ها به صورت فراخوانی با مقدار (نه آدرس) مقدار دهی میشن نمیشه از Structure استفاده کرد.
    Last edited by m3hrz4d; 22-11-2007 at 18:42.

  4. #4
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2007
    پست ها
    23

    پيش فرض

    سلام
    در مورد تابع callback زیر
    CopyProgressRoutine
    میشه بگی اینو از کجا باید بیاریم

  5. #5
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2007
    پست ها
    205

    پيش فرض

    سلام
    در مورد تابع callback زیر
    CopyProgressRoutine
    میشه بگی اینو از کجا باید بیاریم
    اینو باید خودمون بنوسیم که توضیحات اینکه چطور باید بنویسیم و پارامتر هاش چی هستن توی MSDN مایکروسافت همش توضیح داده شده. (البته اکثرا به صورت کد C نه VB)
    وقتی به قسمت مربوط به CopyFileEx میری اونجا تک تک پارامتر ها توضیح داده شدن و این تابع CopyProgressRoutine هم لینک صفحه ای که در موردش توضیح داده شده توش هست:
    msdn2.microsoft.com/en-us/library/aa363854.aspx اینجا CopyProgressRoutine توضیح داده شده
    msdn2.microsoft.com/en-us/library/aa363852.aspx اینجا هم CopyFileEx

    البته اگه فقط در مورد همین CopyFileEx و CopyProgressRoutine توضیح میخوای(نه CallBack های دیگه), اینجا توضیح این کدی که نوشتم رو کامل دادم:
    weblog.mehrzad.net/default.aspx?id=42
    Last edited by m3hrz4d; 23-11-2007 at 21:45.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •