PDA

View Full Version : سوال: چگونگی ارتباط دو برنامه مجزا



morteza271
دوشنبه 13 آذر 1391, 23:11 عصر
سلام دوستان.

فرض کنید دو تا برنامه جدا داریم مثلا با نام های program1 و program2 که ما برنامه program1 رو اجرا میکنیم و این برنامه در ابتدای اجرای خودش برنامه program2 رو اجرا میکنه.
حالا بعد از اینکه برنامه program2 اجرا میشه در یه زمان مشخص برنامه 1 باید یه پیامی به برنامه 2 بده که برنامه 2 با دریافت اون پیام باید یه تابع خاص رو اجرا کنه...

حالا میخوام بدونم چطوری میشه اینکار رو کرد؟؟ یعنی برنامه 1 چطوری باید پیامش رو به برنامه 2 بفرسته؟؟

فقط دوستان توجه کنید که این دو برنامه کاملا مجزا هستند و فقط یکی به وسیله ی دیگری اجرا میشه.یعنی دو تا exe متفاوت هستند.

با تشکر پیشاپیش...

SHD.NET
دوشنبه 13 آذر 1391, 23:23 عصر
سلام.
یکی از راه ها استفاده از WINSOCK هستش. آموزشش هاش هم زیاده . کافیه تو گوگل سرچ کنی

:چشمک:\\\موفق باشید///:چشمک:

morteza271
دوشنبه 13 آذر 1391, 23:41 عصر
ممنونم دوست عزیز.
میشه در مورد عملکردش یه توضیح مختصر بدین و اگه نمونه کدی دارین برام بذارین ممنون میشم.
تا الان اینکار رو انجام دادین؟

SHD.NET
سه شنبه 14 آذر 1391, 00:21 صبح
در اصل winsock رای تبادل اطلاعات دوبرنامه روی شبکه هستش . اما ما از اون روی یک کامپیوتر استفاده می کنم. خودم هم تاحالا ازش استفاده کردم . برای راهنمایی بیشتر به این تاپیک ها مراجعه کن

http://www.go4expert.com/forums/showthread.php?t=3312

http://www.codeproject.com/Articles/5252/Sockets-in-C

:چشمک:\\\موفق باشید///:چشمک:

SHD.NET
سه شنبه 14 آذر 1391, 00:23 صبح
این لینک هم نگاه کنید بد نیست . به زبان Vb.net نوشته شده . ولی خیلی خوب و جامع هستش که یکی از اعضای برنامه نویس اونو تولید کردن و کاملا دربارش توضیح دادن

http://barnamenevis.org/showthread.php?369813-%D8%B3%D9%88%D8%B1%D8%B3-%DA%86%D8%AA-%D8%B1%D9%88%D9%85-%D8%AA%D8%AD%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-(%DA%A9%D8%B3%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%A8%D8%A7-winsock-%D9%85%DB%8C%D8%AE%D9%88%D8%A7%D9%86-%DA%A9%D8%A7%D8%B1-%DA%A9%D9%86%D9%86%D8%AF-%D8%AD%D8%AA%D9%85%D8%A7-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%D9%86%D8%AF)

:چشمک:\\\موفق باشید///:چشمک:

barnamenevisjavan
سه شنبه 14 آذر 1391, 12:04 عصر
با پلاگین خیلی راحت میتونی

SHD.NET
سه شنبه 14 آذر 1391, 12:18 عصر
میشه پلاگین شو معرفی کنین ؟؟ اگه کار باهاش راحت تر از WINSOCK باشه منم میرم سراغ پلاگین !!!

:چشمک:\\\موفق باشید///:چشمک:

plus
سه شنبه 14 آذر 1391, 12:54 عصر
اگه دو تا برنامه روی یک سیستم اجرا میشن استفاده از Winsock لقمه رو دور سر گردوندن هست...
شما میتونی از Windows API استفاده کنی.تابعی داریم به اسم SendMessage که کارش ارسال پیغام به Window هاست.

barnamenevisjavan
چهارشنبه 15 آذر 1391, 18:25 عصر
پلاگین خاصی نداره خود باید برنامت رو بصورت پلاگین بنویسی آموزشش تو سایتم هست
www.barnamenevisjavan.com

morteza271
شنبه 18 آذر 1391, 09:28 صبح
پلاگین خاصی نداره خود باید برنامت رو بصورت پلاگین بنویسی آموزشش تو سایتم هست
www.barnamenevisjavan.com
سلام دوست عزیز.
خیلی ممنون بابت پاسخ هاتون ولی به نظرم اینکار شما تبلیغه!!!!!!!!!!!!!!!!!
من به سایتتون رفتم و یه مسئله خیلی برام عجیب بود!
شما توی سایت تون یه سری سورس گذاشتین که واسه دانلودش از کاربر هزینه دریافت می کنید(عضو ویژه)!!!
به نظرم برخی از سورس هاتون خارجی بود و خودتون ننوشتین درسته؟؟؟
یعنی این روش درسته؟؟؟!!!!!

barnamenevisjavan
شنبه 18 آذر 1391, 09:46 صبح
من نمیدونم چرا همه ذهنشون میره سراغ تبلیغ؟چه ربطی داره؟برخی سورسا کاره خودمه برخی توسعه داده شدن برخی خارجی ان.من وقت میزارم اینارو دسته بندی میکنم.تو هاست خودم آپ میکنم توضیحات فارسیشو میگم و کلی چیزه دیگه و این که هزینه دریافت میکنم بابته جبران هزینه های سایت و زحمت های خودمه.شما هم ناراحتی میتونی به سایتم وارد نشی خدا واجب نکرده که

Reza,M
شنبه 18 آذر 1391, 11:05 صبح
سلام آقا morteza
منم در گیر همچین مشکلی بودم روش های متفاوتی برای این کار هست مثلا میتونی تو حافظه map کنی یا اگر این اطلاعات ارسالی هر بار تغییر نمیکنند تو برنامه رفرنسش کنی. از xml هم میشه استفاده کرد همچنین میتونی از یه فایل متنی برای این کار استفاده کنی دیگه بسته به سناریو کار خودت داره که از چه روشی استفاده کنی. من خودم xml پیشنهاد میدم. حتی اگه اطلاعات مهم داری میتونی فایل xml را رمزنگاری کنی تا هر کاربری به اون اطلاعات دست پیدا نکنه
موفق باشید.

morteza271
شنبه 18 آذر 1391, 11:08 صبح
من نمیدونم چرا همه ذهنشون میره سراغ تبلیغ؟چه ربطی داره؟برخی سورسا کاره خودمه برخی توسعه داده شدن برخی خارجی ان.من وقت میزارم اینارو دسته بندی میکنم.تو هاست خودم آپ میکنم توضیحات فارسیشو میگم و کلی چیزه دیگه و این که هزینه دریافت میکنم بابته جبران هزینه های سایت و زحمت های خودمه.شما هم ناراحتی میتونی به سایتم وارد نشی خدا واجب نکرده که
خوب تبلیغه دیگه!! وقتی میاین میگین توی سایتم هست یعنی چی؟!!!
در مورد اینکه زحمت می کشین شکی نیست ولی به نظرم خیلی بی انصافیه که سورس های خارجی رو بیاین به صورت پولی در اختیار دیگران قرار بدین!!!
به هر حال به من ربطی نداره و من کلا وقتی اینطور سایت ها رو میبینم سعی میکنم دیگه هرگز وارد اون نشم!
ولی میخواستم بگم آخه پول درآوردن چطوری؟؟؟ از هر راهی که رسید درست نیست دیگه!!!!!

موفق باشید دوست عزیز.

morteza271
شنبه 18 آذر 1391, 11:15 صبح
سلام آقا morteza
منم در گیر همچین مشکلی بودم روش های متفاوتی برای این کار هست مثلا میتونی تو حافظه map کنی یا اگر این اطلاعات ارسالی هر بار تغییر نمیکنند تو برنامه رفرنسش کنی. از xml هم میشه استفاده کرد همچنین میتونی از یه فایل متنی برای این کار استفاده کنی دیگه بسته به سناریو کار خودت داره که از چه روشی استفاده کنی. من خودم xml پیشنهاد میدم. حتی اگه اطلاعات مهم داری میتونی فایل xml را رمزنگاری کنی تا هر کاربری به اون اطلاعات دست پیدا نکنه
موفق باشید.
ممنونم دوست عزیز.
این روشی که گفتین اولین روشی بود که به ذهنم رسید ولی به نظرم اصلا مناسب نیست.
چرا که شما توی برنامه مقصد باید همیشه اون فایل رو چک کنی تا ببینی خبر جدیدی شده یا نه!!!!
در ضمن در برنامه مبدا و مقصد هم حتما باید یه مسیر خاص برای ایجاد و چک کردن اون فایل قرار بدین که اینکار ممکنه امکان پذیر نباشه!!

بابت نظرتون واقعا ممنونم ولی به نظر من که مناسب نیست! حالا باید ببینیم نظر بقیه دوستان چیه؟!

Reza,M
شنبه 18 آذر 1391, 11:26 صبح
چرا که شما توی برنامه مقصد باید همیشه اون فایل رو چک کنی تا ببینی خبر جدیدی شده یا نه!!!!


اگه که اینجوری شما باید کدهاتونو طوری تغییر بدین که فقط تغییرات را پاس دهد در غیر این صورت شما با افزونگی مواجه خواهید شد.

morteza271
شنبه 18 آذر 1391, 11:39 صبح
اگه که اینجوری شما باید کدهاتونو طوری تغییر بدین که فقط تغییرات را پاس دهد در غیر این صورت شما با افزونگی مواجه خواهید شد.
من میخوام فقط زمانی که لازمه از برنامه مبدا به برنامه مقصد یه پیام بفرستم و برنامه مقصد هم فقط همون لحظه درگیر باشه...
و نمیخوام در برنامه مقصد مثلا یه تایمر بذارم که همیشه یه چیزی رو چک کنه!!!

Esmail Solhkhah
شنبه 18 آذر 1391, 13:21 عصر
سلام دوست عزیز

جناب محسن شامحمدی (http://barnamenevis.org/member.php?59254-%D9%85%D8%AD%D8%B3%D9%86-%D8%B4%D8%A7%D9%85%D8%AD%D9%85%D8%AF%DB%8C) در این تاپیک (http://barnamenevis.org/showthread.php?306543-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-Pipe-%D9%87%D8%A7-%28%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%88-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D9%88-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AC%D8%AF%D8%A7-%D8%A7%D8%B2-%D9%87%D9%85-%D8%A8%D8%A7-%D9%84%D9%88%D9%84%D9%87%29) Pipe ها رو توضیح دادن که مناسب کار شماست.

موفق باشید.