پلاگین EasyFileTypeCreator

شروع موضوع توسط BlueMMB ‏20 نوامبر 2011 در انجمن نرم افزار Apadana

  1. BlueMMB

    BlueMMB Well-Known Member

    ارسال‌ها:
    269
    تشکر شده:
    406
    امتیاز دستاورد:
    63
    [​IMG]


    سلام به همه دوستان .
    مقدمه : امروز با اجازه پلاگین سازای با تجربه و قدیمی می خوام اولین پلاگینم رو ارائه بدم البته همین اول کار جا داره از آقای محسن فرهادی عزیز ( Free Man ) تشکر ویژه ای رو بکنم چون از مثال های ایشون روش ساخت پلاگین رو یاد گرفتم . یه توضیحم بدم که سعی کردم کار پلاگین متفاوت با بقیه باشه یعنی هدفش فقط ساده تر کردن کدهاست و حذف کردن نوشتن کدهای طولانی با پلاگین های رجیستریه .
    پلاگین EasyFileTypeCreator: همونطور که از اسمش معلومه برای شناسوندن و ساخت یه فرمت جدید از فایلا برای رجیستری ویندوز استفاده میشه مثلا شبیه فایل های .mbd ، .mp3 و ... . البته این پلاگین تفاوتی که با بقیه پلاگینا داره اولا فقط یه کار انجام میده و ثانیا نیازی به دستور PlugInRun نداره . درسته که با فایل بیلدر کنار پلاگین میشه براحتی کد رو برای استفاده از پلاگین درست کرد ولی با این حال روش اسفاده از پلاگین رو تا جایی که می تونم ساده و قابل فهم برای همه عرض می کنم .
    استفاده از پلاگین : برای استفاده از این پلاگین فقط کافیه یه متغیر رشته ای رو براش ارسال کنید که فرمولش به این شکله :

    کد (Text):

    [LEFT][FONT=Times New Roman][SIZE=2]Set$='Error Check | New Type Name | Key Name | Icon | CommandCaption1 | Command1 | CommandCaption2 | Command2 | ... | CommandCaption[n] | Command[n] |'[/SIZE][/FONT][/LEFT]
     
    مثلا فرض کنید یه برنامه حسابداری دارید که می خواید براش نامه هایی از پیش آماده درست کنید و اطلاعات نامه ها رو تو یه فایل ذخیره بکنید به طوریکه کاربر بتونه بدون نیاز به وارد شدن به برنامه ، نامه ها رو باز کنه و بهشون نگاه کنه یا تغییراتی رو توی نامه ها ایجاد کنه یا مستقیما پرینتشون بکنه :
    1 - برای اینکار شما باید یه فرمت خاصی برای نامه ها انتخاب کنید و اون رو به رجیستری ویندوز بشناسونید به عنوان مثال من فرمت جدید رو .ltr ( مخفف Letter ) در نظر میگیرم و یه توضیح مختصر راجع به فایل ها اون رو هم MyLetter در نظر می گیرم که به شکل یه کلید تو رجیستری ساخته میشه و اطلاعات از توی اون خونده میشه .
    2- گفتیم که کاربر یا به فایل ها نگاه کنه یا تغییراتی توشون ایجاد کنه یا حتی سریعا چاپشون کنه . با این اطلاعات باید سه تا آیتم رو به راست کلیک فایل ها اضافه بکنیم ( سه تا Command براش تعریف کنیم ) که به ترتیب میشن Open ، Edit ، Print .
    3 - حالا باید یه آیکون رو برای فایلهامون انتخاب کنیم که دو حالت پیش میاد :
    الف ) آیکون خود فایل اجرایی رو که قراره نامه ها رو باز بکنه انتخاب بکنیم :

    کد (Text):

    [LEFT][FONT=Times New Roman][SIZE=2]"C:\Program Files\Hesabdari\LetterOpener.exe",0[/SIZE][/FONT][/LEFT]
     
    ب ) یه آیکون عادی رو براش انتخاب بکنیم :

    کد (Text):

    [LEFT][SIZE=2][FONT=Times New Roman]"C:\Program Files\Hesabdari\Letter.ico"[/FONT][/SIZE][/LEFT]
     
    4 - برای پلاگین تعیین کنیم که اخطار ها رو به ما بگه یا نه ( ErrorCheck = True\False ) :
    در صورتی که با True مقدار دهی بشه پیغامهای خطای پلاگین می تونن تو دو مورد ایجاد بشن :
    الف ) فرمت تعیین شده قبلا تو رجیستری وجود داشته باشه (Selected Type Exist In Registry)
    ب ) کلیدی که انتخاب شده قبلا تو رجیستری وجود داشته باشه (Selected Key Name Exist In Registry)
    اگرم با هیچ کدوم از گزینه های بالا مواجه نشد پیغام (New Type Created Successfully) رو میده .
    5 - با اطلاعات بالا این کد رو می نویسیم :

    کد (Text):

    [LEFT][FONT=Times New Roman][SIZE=2]Set$='True|.ltr|MyLetter|"C:\Program Files\Hesabdari\LetterOpener.exe ",0|&Open|" C:\Program Files\Hesabdari\LetterOpener.exe" Open "%1"|&Edit|" C:\Program Files\Hesabdari\LetterOpener.exe" Edit "%1"|&Print|" C:\Program Files\Hesabdari\LetterOpener.exe" Print "%1"|'[/SIZE][/FONT]
    [FONT=Times New Roman][SIZE=2]PlugInSet("PlugIn","Set$")[/SIZE][/FONT]
    [FONT=Times New Roman][SIZE=2]PlugInGet("PlugIn","Get$")[/SIZE][/FONT]
    [FONT=Times New Roman][SIZE=2]Message("Get$","")[/SIZE][/FONT][/LEFT]
     
     
     
    ....................................................................................
    تذکر : به هیچ وجه قسمت های مشخص شده در فرمول رو خالی نذارید .
    ....................................................................................
    تست شده ر ویندوزهای : XP - Seven
    از دوستان خواهش می کنم اگه اشکالی رو دیدن حتما متذکر بشن یا اگه پیشنهاد یا انتقادی یا نظری دارن من منتظر شنیدنشون هستم .


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

    پیوست ها:

    • Registry.gif
      Registry.gif
      اندازه فایل:
      کیلوبایت 3.4
      نمایش ها:
      13
    • Commands.png
      Commands.png
      اندازه فایل:
      کیلوبایت 42.8
      نمایش ها:
      12
    نوشته شده توسط BlueMMB در ‏20 نوامبر 2011
    MehrPhar، Shahim، m javad و 8 نفر دیگر از این ارسال تشکر کرده اند.
  2. JavidX

    JavidX Apadana Developer

    ارسال‌ها:
    613
    تشکر شده:
    1,730
    امتیاز دستاورد:
    93
    سلام محمد جان

    ممنون بابت پلاگینت و بخاطر ساخت اولین پلاگینت بهت تبریک میگم.

    موفق و پیروز باشید ;)
     
    نوشته شده توسط JavidX در ‏22 نوامبر 2011
    MehrPhar، +Mohammad+، vahidd.com و 3 نفر دیگر از این ارسال تشکر کرده اند.
  3. OMiD

    OMiD Well-Known Member

    ارسال‌ها:
    264
    تشکر شده:
    1,260
    امتیاز دستاورد:
    93
    بسيار جالب!

    تبريكات ما رو هم براي اولين پلاگينت پذيرا باش !

    موفق باشي
     
    نوشته شده توسط OMiD در ‏22 نوامبر 2011
    +Mohammad+، Muscle، BlueMMB و یک نفر دیگر از این ارسال تشکر کرده اند.
  4. alimaya

    alimaya Active Member

    ارسال‌ها:
    103
    تشکر شده:
    46
    امتیاز دستاورد:
    28
    سلام. ممنون و خسه نباشید به خاطر پلاگین خوبتون. فقط من یه سوالی برام پیش اومده. میشه بگید که اگه روی فایلای رجیستر شده با این پلاگین کلیک بشه، میشه کاری کرد که یه پارامتر (مثل آدرس فایل) به برنامه ارسال بشه یا آدرس فایل تو رجیستری ثبت بشه و بعد توسط برنامه ما خونده بشه؟
     
    نوشته شده توسط alimaya در ‏4 آگوست 2012
    BlueMMB از این پست تشکر کرده است.
  5. BlueMMB

    BlueMMB Well-Known Member

    ارسال‌ها:
    269
    تشکر شده:
    406
    امتیاز دستاورد:
    63
    سلام .

    خب بله دوست عزیز یعنی مهم ترین کار این پلاگین ( در حالت کلی فرمت های تعریف شده تو رجیستری ) ارسال آدرس فایل به برنامست . همون عبارت "1%" که در Command ها قرار داره برای ارسال آدرس فایل باز شدست و کلمه قبل از اون مثل Open , Edit یا Print یا هرچیز دیگه ای که بنویسید هم میتونه به برنامه بگه که کدوم مورد از منو راست انتخاب شده .

    برای یادگیری این که چطوری می تونید پارامترهای ارسالی به برنامرم بخونید می تونید از مثالی که خود بیلدر داره استفاده بکنین :

    C:\Program Files\Multimedia Builder498\Samples\496_examples\cmdline.mbd

    ازش exe بگیرین و با cmd یا همین پلاگین یه فرمتی تعریف کنین که به جای آدرس اون نرم افزار حسابداری که تو مثال بالاست از آدرس فایل exe گرفته شده استفاده کنه و آزمایشش کنین .

    {شرمنده سر کارم و سرم شلوغه خودم نمی تونم براتون مثال بسازم ولی اگه از این مثال چیزی دستگیرتون نشد بگین برا دفعه بعد یه مثال بسازم }
     
    نوشته شده توسط BlueMMB در ‏4 آگوست 2012
    alimaya از این پست تشکر کرده است.
  6. alimaya

    alimaya Active Member

    ارسال‌ها:
    103
    تشکر شده:
    46
    امتیاز دستاورد:
    28
    عرض سلام دوباره خدمت دوست گلم. ممنون به خاطر پاسختون. من اون مثال رو بررسی کردم و تقریبا فهمیدم پارامترا چطور توسط برنامه دریافت میشن. ولی هنوز یکم گیجم! مثلا تو مثال پست اول شما هنگام راست کلیک روی فایل و مثلا انتخاب Edit دو تا پارامتر به برنامه ارسال میشه یا یکی؟ اگه دو پارامتر ارسال میشه آیا اونا تو دوتا رشته به این صورت
    کد (Text):

    [CmdLineParam$[1
    [CmdLineParam$[2
     
    ذخیره میشن؟ و اگه یه پارامتر ارسال میشه، گزینه Edit و آدرس فایل با چه کاراکتری از هم جدا میشه؟ و اگه برنامه ما با وقفه زیاد(مثلا 10 ثانیه) باز بشه آیا بازم پارامترا بهش ارسال میشن یا نه؟ بگذریم! اگه لطف کنید و بگید که چطور و با چه کدی تو شروع برنامه میتونم پارامترای ارسالی رو دریافت کنم ممنون میشم. مثلا برای همین مثال خودتون در بالا چطور میشه پارامترای ارسالی Open، Edit یا print رو دریافت کرد؟
     
    آخرین ویرایش: ‏4 آگوست 2012
    نوشته شده توسط alimaya در ‏4 آگوست 2012
  7. +Mohammad+

    +Mohammad+ Well-Known Member

    ارسال‌ها:
    727
    تشکر شده:
    754
    امتیاز دستاورد:
    93
    بابت بلاگین خوبت بهت تبریک می گم
    تو توی انحمن مولتی مدیا بیلدر هم فعال بودی
    حالا ایشالا اینجا هم ازت استفاده بکنیم
    ایشالا موفق و پیروز باشی
     
    نوشته شده توسط +Mohammad+ در ‏4 آگوست 2012
    BlueMMB و JavidX از این پست تشکر کرده اند.
  8. BlueMMB

    BlueMMB Well-Known Member

    ارسال‌ها:
    269
    تشکر شده:
    406
    امتیاز دستاورد:
    63
    سلام دوباره.
    :)همین اول کار از حواس پرتی خودم گله کنم که دارم تو انجمن آپادانا با بیلدر جوابتون رو میدم ! (اگه جوابتون رو تو نرم افزار آپادانا می خواین بهتره از آقا جاوید (JavidX ) کمک بگیرین .)

    راستش من همون روز رفتم تو خونه اون مثال رو چک کردم یه ایراد جرئی داره والا درست کار می کنه و برای حلش کافیه برید به MasterTopLayer و اسکریپت CBK_CMd... رو باز کنین . یه دستور LoadText هست که تو آرگومان دومش دوتا دونقطه گذاشته یکیش رو حذف کنین و پروژه رو ذخیره کنین حالا اگه همون کار قبلی رو بکنین جواب میده و خودتون میبینین که اون دو تا پارامتر ارسالی تو لیست باکس نمایش داده میشن .

    البته یه توضیح کوتاهم درباره پارامترهای ارسالی به برنامه ها بدم :
    1 - بعد از آدرس فایل اجرایی هر چیزی که بنویسین یه پارامتر محسوب میشه .
    2 - پارامترها بوسیله فاصله از هم جدامیشن .
    3 - بنا به شماره 2 : اگه تو یه پارامتر ارسالیتون فاصله وجود داشته باشه برای این که اون ها از هم جدا نشن و مجزا محسوب نشن اونا رو باید تو " " بنویسین ( مثل همون آدرس فایل باز شده که چون احتمال وجود فاصله توش وجود داره باید اینجوری نوشته بشه : "1%" )
    4 - تا اونجایی که من می دونم تعداد پارامترها محدودیت ندارن پس لازم نیست مثل مثال نوشته شده دو تا پارامتر ارسال بشن و همینطور ترتیبشون هم مهم نیست و بسته به سلیقتون داره .

    در مورد اون زمانی هم که گفتین باید بگم اصلا دخالتی تو پارامترهای ارسالی نداره .

    امیدوارم مشکلتون حل بشه . یا علی .
     
    آخرین ویرایش: ‏13 آگوست 2012
    نوشته شده توسط BlueMMB در ‏8 آگوست 2012
    +Mohammad+ از این پست تشکر کرده است.

به اشتراک بگذارید