برای انجام بعضی از این کارها، می تونیم از تابع API یی بنام mciSendString استفاده کنیم که یک رشته فرمان رو به یک دستگاه MCI(Media Control Interface) ارسال می کنه. دستگاهی که فرمان برای اون صادر می شه، درون رشته فرمان مشخص می شه. Declaration این تابع بصورت زیر هست:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که در اون پارامتر lpszCommand آدرس یک رشته منتهی به کاراکتر null هست که باید رشته فرمان MCI رو درش قرار بدیم،
پارامتر lpszReturnString آدرس بافری هست که اطلاعات برگردانده شده رو دریافت می کنه. اگه به هیچ اطلاعات برگشتی نیاز نباشه، مقدار این پارامتر می تونه NULL باشه،
پارامتر cchReturn، تعداد کاراکترهای بافر بازگشت(lpszReturnString) هست.
پارامتر hwndCallback، نیز اگر فلگ "notify" در رشته فرمان، مشخص شود، این دستگیره(handle) پنجره بازگشت(callback) است.
این تابع در صورت موفقیت، صفر و در غیر اینصورت یک خطا بر می گرداند.
حال برای اینکه با این تابع راحت تر کار کنیم و به یک باره خطاها رو هم در یک تابع هندل کنیم، بهتره از تابع زیر استفاده کنیم(Declaration تابع mciSendString رو که در بالا نوشتم، یادتون نره):
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای CD-ROM، کارها و شوخی های مختلفی می تونیم انجام بدیم.
*برای مثال می شه درش رو مرتب و پشت سر هم باز و بسته کرد:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ولی همونطور که می بینین این یه حلقه بی پایان هست. یعنی با اجرای خطوط بالا، در CD-ROM تون(اولین رسانه از نوع CD-Drive) بصورت متوالی و وقفه ناپذیر باز و بسته می شه. مگه اینکه بصورتی به این حلقه پایان بدین.
*کار دیگه ای که می شه کرد اینه که در CD-Drive رو بحالت بسته نگه داشت تا کاربر نتونه بهیچ وجه اون رو باز کنه:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همونطور که می بینین در خطوط بالا هم در واقع فرمان بستن در CD-Drive در یک حلقه بی نهایت صادر می شه. بهمین علت کاربر نمی تونه درش رو باز کنه، مگه اینکه در چرخش این حلقه، وقفه ای پدید بیاد، مثلا برنامه توسط Task Manager خاتمه پیدا کنه.
* یه مثال دیگه، عمل عکس بالاییه. یعنی کاربر نتونه در CD-Drive رو ببنده:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خوب فعلا کافیه. تا بعد...