PDA

View Full Version : سوال: اعمال تغییر در برنامه، پس از کامپایل



sepehr1014
سه شنبه 16 فروردین 1390, 16:31 عصر
سلام
نمیدونستم اسم تاپیک رو چی انتخاب کنم....
راستش من چند وقتی هست که از یه برنامه ایرانی به اسم "تقویم خورشیدی" استفاده میکنم:
http://www.psoft.ir (http://www.psoft.ir/)
این برنامه به زبان ویژوال بیسیک هست. که یه سری امکانات برای ارتقای برنامه داده. یعنی مثلا کتابخانه اشعار حافط رو دانلود میکنیم و یه فایل vb، با اون وقتی برنامه نصب باشه، این امکان به برنامه افزوده میشه.

حالا برنامه ی من یه سری فایل exe رو اجرا میکنه. که اونا رو بصورت content تعریف کردم. ولی حجم بعضی خیلی زیاده و نمیشه با خود برنامه گذاشت.
میخوام یه کاری کنم که وقتی کاربر فایل exe و یه چیزی برای ربط دادنش به برنامه رو دانلود میکنه و اجرا میشه، یه منو به برنامه ی من اضافه بشه و مثلا اون exe به عنوان content تعریف بشه و reference بگیره و ازش استفاده بشه. و یا آدرس ذخیره اون فایل اجرایی داخل برنامه بره و با کلیک روی منویی که به اسم خودشه، اجرا بشه ...

میخواستم ببینم این کار تو Visual C# امکان پذیر هست؟ (البته با WPF میخوام بنویسم، نه فرم)

ممنون

barnamenevisjma
سه شنبه 16 فروردین 1390, 17:57 عصر
با سلام
یادمه یه برنامه نوشتم که plugin قبول می کرد(بصورت فایل های DLL). اونجا من از Reflectionها استفاده کردم. فکر میکنم به درد کار شما هم بخوره.(میتونید با این روش هر کدوم از متد های مورد نیازتون رو از DLL مورد نظر فراخونی کنید). البته بحث Reflectionها بحث گسترده ایه. ولی نگران نباشید(سخت نیست).
هم تو همین سایت و هم تو سایت های دیگه(مثل codeproject (http://www.codeproject.com/)) میتونی مطالب مفیدی پیدا کنی.
موفق باشی.

sepehr1014
چهارشنبه 17 فروردین 1390, 13:18 عصر
سلام
با تشکر از جوابتون. میشه یکم کاملتر توضیح بدید؟ یا لینک یه مثال ساده رو لطف کنید؟

با تشکر

teardrop
چهارشنبه 17 فروردین 1390, 23:31 عصر
به نام خدا
تا اونجایی که من میدونم نمیشه کد کامپایل شده رو به این آسونی تغییر داد.
اگه شما میخواهید برنامه تون مثل تقویم خورشیدی باشه یک نگاه دقیق تر به اون بیندازید
اون کدی به برنامه نمیده بلکه داده هایی به برنامه میده مثل یک بانک اطلاعاتی که اولش چیزی نداره و بعد به روز میشه.
مثلا کتابخوان اون یک سری فایل داده ای xml به محل نصب شده برنامه اش با اسکریپت کپی میکنه وقتی شما برنامه کتابخوان رو اجرا میکنید اون تمام فایل های مربوطه رو میخوانه و لیست میکنه نه اینکه بیاد کد برنامه exe رو تغییر بده.

شما می توانید یک فایل متنی ساده در محل نصب برنامه ایجاد کرده باشید و وقتی که مثلا به قول خودتون یک فایل اجرایی را از شما دریافت کرده باشند و اجرا کنند برنامه دریافتی اون فایل متنی رو تغییر بده و وقتی که برنامه اصلی رو باز کردند از اون فایل اطلاعات راجع به هر چیزی رو بخونه

و بعد نسخه بعدی اون برنامه با vb.net نوشته شده.
امیدوارم منظور شما رو من فهمیده باشم.

barnamenevisjma
پنج شنبه 18 فروردین 1390, 01:30 صبح
امیدوارم لینک های زیر براتون مفید باشن...

نمایی کلی از کلاس Reflection (http://www.codeproject.com/KB/dotnet/Reflection.aspx)

چند مثال از نحوه بکارگیری Reflectionها (http://www.codeproject.com/KB/cs/C__Reflection_Tutorial.aspx?disp)

این هم یه مثال دیگه (http://www.codeproject.com/KB/cs/C__Reflection_Tutorial.aspx)

پیروز و سربلند باشید...

sepehr1014
پنج شنبه 18 فروردین 1390, 16:41 عصر
ممنون دوستان، پاسختون عالی بود.
من برم reflection هارو بخونم و روش کار کنم. اگه سوالی برام پیش امد، باز مزاحم میشم ....