تمام سوالات سوالات بدون پاسخ سوال بپرسید

من می خواهم نرم افزاری رو بسازم که فقط مخصوص خودم باشه یعنی با پسوندی که خودم می خواهم باز بشه مثلا REC. یا هر پسوند دیگه ای که خودم می خواهم. دقیقا مثل Media Player که پسوند های خودش رو باز می کنه. کسی می تونه کمکم کنه.

دوست عزیز media player یک نرم افزار و فایلی که با پسوند خاص اجرا میکنه یک دیتا محسوب میشه. منظور شما اینه که یک player بنویسید که دیتایی با پسوند خاص خودتون رو اجرا کنه؟

(10 مارس '12, 12:20) omid

دوست عزیر کاری که شما می خواهید انجام دهید، راه های زیادی برای انجام دارد. بفرمایید که آیا می خواهید این کار را Installer انجام دهید یا با برنامه. چون حالت معمول برای این کار، انجام آن از طریق Installer است که بسیار ساده هم است. اگر می خواهید با زبان خاصی این کار را انجام دهید، لطفاً زبان مورد نظرتان را هم ذکر کنید. ممنون.

(10 مارس '12, 13:14) mostafa

آره با #C،

(10 مارس '12, 14:05) Maleki
2

همانطور که omid گفته. من فکر کنم شما می‌خواهید یک نرم افزار بنویسید که فایل‌های خاصی را با پسوند خودتون باز کنه. مثلا Adobe Acrobat که فایل‌های با پسوند PDF را باز می‌کند یا word که فایل‌های با پسوند Doc, Docx را باز می‌کند. در اینصورت کار دو قسمت است یکی نوشتن نرم افزار و در مرحله‌ی دوم انتخاب پسوند و قالب فایل. اگر اینطوره بفرمایید که راه حل را بر این مبنا پیشنهاد دهیم؟

(10 مارس '12, 15:16) ir01 ♦♦
1 پاسخ

برای انجام این کار روش های مختلفی وجود داره. همه این روش ها کلیدهایی رو در رجیستری set می کنند. انواع فایل ها در HKEY_CLASSES_ROOT یک کلیدهایی دارند. در آنجا مشخص می شود که فایل مورد نظر با چه برنامه ای باز شود و ... از جمله می توان به لیست برنامه هایی که باید در OpenWith قرار داده شوند یا Mime Type فایل مورد نظر اشاره کرد.
براحتی می توان برنامه ای نوشت که با تنظیم این کلیدها در رجیستری نوع فایل جدیدی (همانند آنچه شما فرمودید برای نمونه REC.) ایجاد شود یا نوع فایلی که وجود دارد با یک verb خاص به برنامه ای دلخواه نسبت داده شود. منظور از verb عملیاتی است که برنامه مورد نظر باید روی فایل انجام دهد. برای نمونه گاهی روی فایلی راست کلیک می کنیم و می بینیم که گزینه های ... ,open, edit وجود دارد. این ها همان verb ها هستند.
البته انجام این کار با جزئیات می تواند وقت گیر باشد. برای انجام این کار یک کتابخانه پیدا کردم که براحتی می توان با استفاده از آن این کار را انجام داد.
در زیر مثال هایی برای استفاده از این کتابخانه خواهد آمد. این کد نمونه برای ایجاد یک پسوند جدید می تواند مورد استفاده قرار گیرد:

FileAssociationInfo fai = new FileAssociationInfo(".bob");
if (!fai.Exists)
{
    fai.Create("MyProgramName");

    //Specify MIME type (optional)
    fai.ContentType = "application/myfile";

    //Programs automatically displayed in open with list
    fai.OpenWithList = new string[] { "notepad.exe", "wordpad.exe", "someotherapp.exe" };
}

یا برای Associate کردن پسوندی با یک برنامه به این صورت می توان انجام داد:

ProgramAssociationInfo pai = new ProgramAssociationInfo(fai.ProgID);
if (!pai.Exists)
{
    pai.Create
    (
    //Description of program/file type
    "My Program's File Type",
    new ProgramVerb
    (
        //Verb name
        "Open",
        //Path and arguments to use
        @"C:\SomePath\MyApp.exe %1"
    )
    );

    //optional
    pai.DefaultIcon = new ProgramIcon(@"C:\SomePath\SomeIcon.ico");
}

موفق باشید.

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×46
  • پرسیده شده: 10 مارس '12, 10:20
  • بازدید: 2,002 بار
  • آخرین بروزرسانی: 10 مارس '12, 22:50

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها