PDA

View Full Version : سوال: استفاده از یک پروژه سی شارپ در پروژه ای دیگر



paridarkavir
شنبه 14 آذر 1388, 07:07 صبح
سلام من میخوام در زمان اجرای برنامه تحت ویندوزم،اول یک پروژه اجرا بشود و یک سری کد که نیاز برنامه است اجرا شود(اگر این مرحله برنامه اجرا نشدسراغ برنامه دوم نرود)بعد خودش به سراغ برنامه دوم برود.
برنامه حتما باید به صورتی که عرض کردم عمل کنه
مشکلم اینجاست که نمی دونیم چه جوری میشه بین دوتا پروژه لینک شد

fjm11100
شنبه 14 آذر 1388, 08:42 صبح
اگر منظورت اینه که دو تا فایل اجرایی را به ترتیب اجرا کنی(فکر کنم واسه قفل ساختن یا همچین چیزایی بخوای) یک راه سریعش اینه که برنامه اولت بعد از انجام تمام کارهاش برنامه دوم را صدا بزنه که تو C# باید بری سراغ
System.Diagnostics.Proces متد Start
برای اینکه برنامه دومت بدون اجرای برنامه اول اجرا نشه یک راهش اینه که وجود برنامه اولت را در پروسسهای درحال اجرا چک کنی که البته باید برنامه اولت بعد از اجرای برنامه دوم بسته نشه که این هم با متد GetProcesses همین کلاس Process قابل پیاده سازیه
موفق باشی

paridarkavir
شنبه 21 آذر 1388, 11:48 صبح
سلام
ببینم هیچ روش دیگه ای برای این کار نیست
به نظر میرسه کد بالا برای فراخوانی و اجرای فایل باشد
در حالی که من می خوام حاصل کارم یک برنامه باشد
خواهشا کمک کنید

paridarkavir
پنج شنبه 26 آذر 1388, 06:58 صبح
سلامی دوباره
آقا کسی بلد نیست
چه جوری از دو پروژه همزمان استفاده کنم؟

fjm11100
پنج شنبه 26 آذر 1388, 08:19 صبح
چرا هست
استفاده از Reflection
البته اگر منظورت را درست فهميده باشم.
با Reflection ميتوني يك اسمبلي دات نت را داخل يك اسمبلي دات نت ديگر لود كني و اجرا كني

paridarkavir
شنبه 28 آذر 1388, 07:05 صبح
سلام از این که جوابم را دادید ممنونم یه سرچی در مورداستفاده از Reflectionکردم ولی چیزی دستگیریم نشد که چگونه بین دوتا کد پروژه جابجا بشوم
خواهشا راهنمائی کنید
موفق باشید

fjm11100
شنبه 28 آذر 1388, 09:24 صبح
خلاصه و ساده ميگم اميدوارم براي راه انداختن كافي باشه:
همونطور كه ميدوني هر پروژه دات نت بعد از كامپايل ميشه يك اسمبلي و هر اسمبلي از تعدادي Type تشكيل شده
حالا Reflection اين امكان را به تو ميده كه بتوني يك اسمبلي را لود كني اجرا كني يا از كلاسها و اينترفيس هاش استفاده كني البته بر خلاف ارثبري تو ميتوني به همه اجزا چه عمومي باشند چه خصوصي دسترسي داشته باشي
شما ميتوني اطلاعاتي راجع به كلاسها، متد ها، متغيرها و ساير اجزا بدست بياري كه مثلا از چه نوعي هستند چه ورودي هايي ميگيرند و....
همچنين ميتوني از كلاسهاي اون اسمبلي instance بسازي و بعد استفاده كني. بعدش هم كه آسونه مثلا از كلاس Form1 اسمبلي مورد نظر نمونه ميسازي و نمايشش ميدي اينطوري فقط بخشي از اون كد تحت كنترل كد اولت اجرا ميشه

Programer Csharp
جمعه 10 فروردین 1397, 11:02 صبح
سلام . من همیشه توی برنامه نویسی از روش های ساده تری استفاده میکنم .
بهت پیشنهاد میکنم تو هم همین کار رو انجام بدی .
برای اینکه فرم اول باز بشه خوب RUN برنامه کافیه .
تو باید برای فرم 2 یک تایمر بزاری که هر یه ثانیه چک کن که Page Reauest ما 0 یا 1 .
این کار رو با تعریف کردن یک متغیر به نام Page Request در فرم 1 با مقدار پیش فرض 0 میتونی انجام بدی .
نوع این متغیر Public باشه که بتونی مقدارش رو در فرم 2 ببینی .
فرم 2 در تابع تایمر ، دستوری از نوع if بنویس که بیاد برسسی کنه که Page Request ما 0 یا 1 .
0 = که هیجی
1 = فرم 2 جدید باز بشه .
کل این خط نوشتنش 1 دقیقه است . اگر نتونستی بسازی بهم یه پیغام بده
09038728145 فقط خط تلگراممه .

danialafshari
دوشنبه 13 فروردین 1397, 09:48 صبح
سلام . من همیشه توی برنامه نویسی از روش های ساده تری استفاده میکنم .
بهت پیشنهاد میکنم تو هم همین کار رو انجام بدی .
برای اینکه فرم اول باز بشه خوب RUN برنامه کافیه .
تو باید برای فرم 2 یک تایمر بزاری که هر یه ثانیه چک کن که Page Reauest ما 0 یا 1 .
این کار رو با تعریف کردن یک متغیر به نام Page Request در فرم 1 با مقدار پیش فرض 0 میتونی انجام بدی .
نوع این متغیر Public باشه که بتونی مقدارش رو در فرم 2 ببینی .
فرم 2 در تابع تایمر ، دستوری از نوع if بنویس که بیاد برسسی کنه که Page Request ما 0 یا 1 .
0 = که هیجی
1 = فرم 2 جدید باز بشه .
کل این خط نوشتنش 1 دقیقه است . اگر نتونستی بسازی بهم یه پیغام بده
09038728145 فقط خط تلگراممه .
با سلام
اگه به تاریخ سوال نگاه کنید میبینید که مربوط به سال 88 هست
برای ادغام دو پروژه بهتره که پروژه2 رو در پروژه1 ، Add Refrence کنید اینطور میتونید به اعضای پروژه2 دسترسی داشته باشید
موفق باشید