PDA

View Full Version : تشخیص درایو مجازی از سی دی رام



Mahdi_Delphi
دوشنبه 27 آذر 1385, 17:22 عصر
سلام

چطور میشه تشخیص داد که برنامه از روی درایو مجازی اجرا شده یا از روی CDROM ؟!

چون تابع GetDriveType نمی تونه درایو مجازی رو تشخیص بده و همون کد 5 رو برمیگردونه.

آیا راهی هست که متوجه بشیم برنامه ما از روی Image اجرا میشه یا سی دی اصلی؟!

من دارم روی فایلهای Log خود Nero کار میکنم تا Drive Letter درایو مجازی رو تشخیص بدم ولی می خوام بدونم یک روش کلی برای این کار هست که روی Clone و سایر برنامه هایی که درایو مجازی میسازن هم عمل کنه؟!

ممنون

Saeid59_m
سه شنبه 28 آذر 1385, 08:20 صبح
سلام
فکر نمی کنم به این سادگی بشه این کار رو کرد . شاید اگه اطلاعات bios‌ رو بدست بیاری بتونی کاری بکنی . البته اطلاعات bios زیاد هم قابل اطمینان نیست .

اگه می خواهی قفل بنویسی روش مناسبی را انتخاب نکرده ای
موفق باشی

Number1
سه شنبه 28 آذر 1385, 08:24 صبح
دقیقا درسته روش مناسبی برای قفل گذاری نیست
قبلا شرکت های زیادی در این راه شکست خورده اند

mRizvandi
سه شنبه 28 آذر 1385, 08:26 صبح
سلام

این رو دیدید:
http://bb.domaindlx.com/brosedev/bractivex.htm#mcCDChecker

البته من هم اون رو برای قفل گذاری روش خیلی خوبی نمی دونم ولی حداقل می دونی که طرف برنامه رو از روی هارد یا دریو مجازی اجرا نکرده.

Mahdi_Delphi
سه شنبه 28 آذر 1385, 12:12 عصر
سلام

خیلی ممنون از دوستانی که راهنمایی کردن.

فقط می خوام یه قفل مقدماتی و ابتدایی طراحی کنم که فقط جلوی کاربران عادی رو بگیره !

جناب mRizvandi اون OCX داخل سایت بالا رو فکر کنم با دستور GetDriveType نوشتن!

من با این دستور آشنایی دارم ولی منظور من از درایو مجازی، درایوهایی هست که مثلاً با برنامه Nero ImageDrive ساخته میشه!

به هر حال از همه دوستان ممنونم

mRizvandi
سه شنبه 28 آذر 1385, 12:20 عصر
سلام

دوست عزیز، اون OCX برای یکسری از درایوهای زمان خودش جواب میده:
IsCDDrive: determine cd drive
IsHardDrive: determine hard disk drive
IsNeroDrive: determine nero drive
IsWinOnCDDrive: determine winoncd drive
IsVirtualDrive: determine virtual drive

Mahdi_Delphi
سه شنبه 28 آذر 1385, 15:05 عصر
ببخشید دوست گرامی، اشتباه از طرف من بود !

خیلی ممنون بابت کمک تون.