PDA

View Full Version : باز کردن فایل ها با برنامه .



musiox
دوشنبه 31 اردیبهشت 1386, 19:12 عصر
من می خوام یه فایل مشخص رو با برنامه نوشته شده خودم بازش کنم ؟ به طور مثال وقتی در ویندوز روی فایل txt کلیک کنی notepad محتواش رو نمایش میده . من همین کار رو می خوام با برنامه خودم انجام بدم . البته بگم میخوام تو 2003 باشه و بیشتر با بخش برنامه نویسی و نمایش محتوای فایل کار دارم نه با رجیستری .

Alireza_Salehi
دوشنبه 31 اردیبهشت 1386, 19:47 عصر
اگر می خواهید در برنامه خودتان باز شود خوب باید با امکانات خواندن فایل ، اون رو بخونید و نمایش بدید، که بر اساس نوع فایل و فرمت آن روشهای مختلفی هست ، در سایت جستجو کنید.

ولی اگر صرفا می خواهید آن فایل باز شود (با برنامه پیش فرض سیستم) از Process.Start استفاده کنید.

musiox
سه شنبه 01 خرداد 1386, 08:07 صبح
من فکر کنم باید یه کم سوالم رو بهتر بپرسم . خب من بر فرض یه برنامه نوشتم که از توی اون این قابلیت وجود داره که من یه فایل با پسوند مشخص رو باز و پردازش کنم با این هیچ مشکلی نیست . مشکل اینجاست که من وقتی برنامه در حالت اجرا نیست با باز کردن فایل ( به هر طریقی مثلا از راه دابل کلیک ) برنامه من ران بشه و اون فایل رو که من می خوام پردازش کنه .

saeed_rezaei
چهارشنبه 02 خرداد 1386, 00:01 صبح
دوست من، بر خلاف اونچیزی که تو پست اولت نوشتی، این کار رابطه مستقیم با رجیستری داره. وقتی شما روی فایلی با پسوندی مثل doc کلیک میکنید این ویندوزه که از روی رجیستری، می فهیمه که این فایل باید با برنامه word باز شه.

ghafoori
چهارشنبه 02 خرداد 1386, 07:30 صبح
داخل قسمت HKEY_CLASSES_ROOT ریجیستری تمام پسوندهایه فایل ذخیره شده با نگاه به یکی از انها کارتون را می افتد

sh
چهارشنبه 02 خرداد 1386, 15:31 عصر
در هنگام نصب برنامه خیلی از برنامه های ساخت Setup مثل InstallShield , Wise Installation system , Installaware این کار رو به راحتی برای شما انجام میدن

musiox
چهارشنبه 02 خرداد 1386, 21:47 عصر
گفته های شما درسته . می دونم از طریق رجستری که معلوم می شه فایلی با پسوند مشخص توسط کدام برنامه باز بشه ولی می خوام در مورد اتفاقاتی که در برنامه من میفته بیشتر بدونم . اینکه برنامه من چطور متوجه این امر میشه و چه روتینی در این زمان باید اجرا بشه .

saeed_rezaei
چهارشنبه 02 خرداد 1386, 23:18 عصر
سلام.
همانطور که قبلا نیز گفتم این که چه فایلی با چه برنامه ای باز شه، تشخیصش با ویندوز هست. توی ریجیستری ویندوز تعریف شده که کدام فایلها با کدام برنامه ها باز شه. وقتی شما فایل e:\test.doc رو دوبار کلیک می کنید، ویندوز دستوری مثل دستور زیر رو اجرا می کنه.
Winword e:\test.doc
. بدین ترتیب برنامه word تشخیص می ده که کدام فایل رو باید باز کنه.
در vb.net نمی تونیم به فرم ها پارامتر صادر کنیم. مثلا بنویسیم form2 e:\test.doc. یا لااقل من نتونستم که به فرم پارامتر ارسال کنم. اگه بخوایم به برناممون قابلیت گرفتن پارامتر رو بدیم باید ازتابع sub main استفاده کنیم و لیست پارامترها رو برای اون مشخص کنیم. مطمئنن کار تابع sub main رو بلدید و نیازی به توضیح من ندارید. پس کد زیر رو در ورودی تابع sub main بنویسید تا به شکل زیر تغییر کنه.


Public Sub main(ByVal CmdLine() As String)

بدین تریق برنامه شما می تونه لیست پارامتری رو که به اون داده می شه رو به صورت یک آرایه بخونه.

اجرای نمونه برنامه:
با توجه به توضیحات بالا، یه برنامه نمونه آپلودکردم. این برنامه می تونه فایلهای متن ساده رو بخونه و متنشون رو نمایش بده.
این برنامه رو بگیرید. قبل از استفاده باید ترتیبی بدیم که ویندوز فایلهایی موردنظرمون رو برامون لیست کرده و به برنامه بده.
در این مثال می خوایم فایلهای باپسوندsss رو بخونیم.
یه فایل با پسوند sss ایجاد کنید و محتویاتش رو متن ساده قرار بدید.
هر چند میدونم این مراحل رو خودتون می دونید اما من هم یه بار دیگه می نویسیم. حال باید رجیستری ویندوز رو تنظیم کنیم. می تونیم واردرجیستری بشیم و تنظیمات رو انجام بدیم اما دراینجا ساده تر و سریعتر اینه که روی فایلی که ساختیم راست کلیک کرده و گزینه openwith رو انتخاب کنیم.
Open with -> choice program -> brows ->
فایل runeithparameter.exe رو از محلی که برنامه رو کپی گرفتید انتخاب و open میزنیم. برای گزینه always use the selected prog… تیک زده و درنهایت ok رو می زنیم.
حالا فایلتون رو دوبار کلیک بزنید. طبیعتا باید متن فایلتون رو ببینید.

ghafoori
پنج شنبه 03 خرداد 1386, 06:47 صبح
در vb.net نمی تونیم به فرم ها پارامتر صادر کنیم. مثلا بنویسیم form2 e:\test.doc. یا لااقل من نتونستم که به فرم پارامتر ارسال کنم. اگه بخوایم به برناممون قابلیت گرفتن پارامتر رو بدیم باید ازتابع sub main استفاده کنیم و لیست پارامترها رو برای اون مشخص کنیم.

دوست عزیز داخل وی بی 2005 با این کد می توانی در هرجا برنامه بدون sub main به پارامترها دست پیدا کنید


My.Application.CommandLineArgs

musiox
پنج شنبه 03 خرداد 1386, 09:30 صبح
از راهنماییهاتون ممنونم .
من گشتم . توی 2003 می تونیم برای این کار از کلاس Environment , متد GetCommandLineArgs استفاده کنیم .