PDA

View Full Version : سوال: پیدا کردن نام دی وی دی رام ( DVD-ROM ) و اجرای فایل داخل آن



forodo
پنج شنبه 09 آبان 1392, 06:35 صبح
سلام دوستان
من کد زیر رو برای اجرای یه برنامه دارم:

System.Diagnostics.Process.Start("wmplayer.exe", @"E:\fff.mpg");

اگه بخوام همون فایل رو که داخل دی وی دی رام هستش رو بخونم آدرسش به چه شکل می شه؟
من نمی دونم اسم درایور دی وی دی رام کسی که بهش اینو می دم چیه.
لطفاً راهنمایی کنید.
با تشکر

FastCode
پنج شنبه 09 آبان 1392, 11:44 صبح
http://msdn.microsoft.com/en-us/library/system.io.driveinfo.getdrives.aspx

فقط جواب دادم که بگم عنوان تاپیکتون رو درست کنید:
پیدا کردن نام درایو DVD-ROM

forodo
پنج شنبه 09 آبان 1392, 12:26 عصر
ممنون
اگر فایل رو کنار exe برنامم بذارم و کد زیر رو بنویسم مشکلی ندارد؟
تست کردم روی هارد انجام شد ولی اگر از دی وی دی رام بخونه باز هم مشکلی نداره؟
آخه چون بعضی چیزها داخل کامپیوتر خود آدم درست کار می کنه ولی داخل کامپیوتر دیگران مشکل دار میشه.
کد اجرای فایل داخل دی وی دی رام ( اسم دی وی دی رام مشخص نیست )

string MasireBarname = AppDomain.CurrentDomain.BaseDirectory; // پیدا کردن مسیر برنامه اجرا شده
System.Diagnostics.Process.Start("wmplayer.exe", MasireBarname + "fff.mpg"); // چسباندن فایل مورد نظر که کنار فایل اجرایی برنامه هستش به مسیر بالا
Application.Exit(); // بسته شدن برنامه خود بعد از اجرای فایل


MessageBox.Show(System.IO.Path.GetPathRoot(AppDoma in.CurrentDomain.BaseDirectory)); // پیدا کردن درایوی که برنامه در آنجا اجرا شده

FastCode
پنج شنبه 09 آبان 1392, 14:46 عصر
احتمال کار کردن این روش از روش پیدا کردن اسم درایو و آدرس کامل دادن خیلی بیشتره.چون اون روش برای خیلی از حالات باید شرایط اضافش در نظر گرفته بشه.
مثل وقتی که چند تا cdrom وجود داره یا یکیش خالیه یا سیدی خام توی دستگاهه یا اطلاعات توی هارد کپی شده یا سیدی خرابه یا هنوز داره مونت میشه.

forodo
پنج شنبه 09 آبان 1392, 18:04 عصر
این کدهارو نوشتم ولی نمی دونم چرا موقع اجرا وقتی Windows Media Player باز می شه ارور پایین رو میده ولی وقتی خود فایل رو به صورت عادی باز می کنم اجرا می شه.

string MasireBarname = AppDomain.CurrentDomain.BaseDirectory;
System.Diagnostics.Process.Start("wmplayer.exe", MasireBarname + "Film\\aaa.mpg");

حتی به جای MasireBarname آدرس رو کامل گذاشتم ولی باز هم همین ارور رو داد.
112414
این کدهای پایینی هیچ فرقی با بالایی نداره به جز اسم فایل ( هر دو فایل یکی هستند ) ولی پایینی اجرا می شه که یه پروژه دیگه هستش ولی بالایی که یه پروژه دیگه هستش اجرا نمی شه.

string MasireBarname = AppDomain.CurrentDomain.BaseDirectory;
System.Diagnostics.Process.Start("wmplayer.exe", MasireBarname + "Film\\fff.mpg");

forodo
پنج شنبه 09 آبان 1392, 19:19 عصر
این آدرس:

@"E:\Programming\TestTestTest\TestTestTest\bin\Debug \Film\fff.mpg"

با این آدرس:

@"E:\Programming\second birthday\second birthday\bin\Debug\Film\second birthday.mpg"

چه فرقی داره؟؟؟
تنها فرقشون توی فاصله هاشونه!!!
فایل بالایی بدون فاصله هستش ولی فایل پایینی بین کلمات فاصله داره.
بالایی بدون هیچ مشکلی ( باقلوا ) اجرا میشه ولی پایین هرکاری کردم اجرا نشد.

من درست فکر می کنم یا اشتباه دارم می گم؟؟؟
بعنی باید حتماً فایلی که قراره اجرا بشه بدون فاصله باشه؟؟؟

forodo
شنبه 11 آبان 1392, 18:39 عصر
خواهشاً کمک کنید.
من می خوام بعداً برنامه ای بنویسم که 80% کار اجرای فایل ها در برنامه های خاصی هستش.
الان این مشکل رو متوجه شدم چطور می تونم رفعش کنم؟؟؟