PDA

View Full Version : استفاده از سایر برنامه ها در برنامه ی خودمان



omid-vbAuto
پنج شنبه 11 آذر 1389, 23:53 عصر
63040

با سلام خدمت دوستان عزیز

همان طور که در شکل زیر می بینید یک برنامه هست که یک مقدار رو Textbox1 می گیره و با کلیک بر روی Button1 اون مقدار رو به عدد 3 ضرب کرده و در Textbox2 نمایش می ده.


http://up.iranblog.com/images/tz77eu7xsbs4lf35tvn1.png

فایل برنامه بالا رو هم می تونید دانلود کنید:


حالا سوال من اینکه:

من می خوام از این برنامه بالا تو برنامه هام استفاده کنم .یعنی اینکه بیام برناممو از طریق برنامه دیگه فراخوانی کنم و یک مقدار به Textbox1 بفرستم سپس Button1 رو تحریک کنم تا خروجی Textbox2 رو بدهد سپس این خروجی رو به برنامم ارسال کنم.

البته کاری که برنامه بالا برام انجام می ده چیز خاصی نیستش ولی روش انجام این کارو می خوام.

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




لطفا اگر اطلاعاتی در این مورد دارین به اشتراک بگذارید.و اگه یه مثال هم بزنید که بتونه برنامه بالا رو به کار بگیره خیلی لطف می کنید.با تشکر

mansourii
جمعه 12 آذر 1389, 12:56 عصر
سلام
فهم سوال، نصف جوابه! (نفهميدم كه چي گفتيد!)

یعنی اینکه بیام برناممو از طریق برنامه دیگه فراخوانی کنم
يعني شما 2 تا پروژه داريد و ميخوايد كه دو تا برنامه رو با هم ادغام كنيد؟
يا اينكه
ميخوايد با Sender يك Button خروجي يك TextBox رو فراخواني كنيد؟

Felony
جمعه 12 آذر 1389, 13:19 عصر
باید به وسیله تابع FindWindow هندل فرم مربوط به برنامه ، به وسیله FindWindowEX هندل مربوط به TextBox و Button مورد نظر رو به دست بیارید و به وسیله تابع SendMessage یا PostMessage و پارامترهای WM_SetText و WM_LBUTTONDBLCLK متن مورد نظر رو به TextBox بفرستید و رو دکمه کلیک کنید و در آخر هم به وسیله WM_GetText متن مورد نظر رو از TextBox دوم بخونید .

توابعی که نام بردم رو تو MSDN جست و جو کنید .

omid-vbAuto
جمعه 12 آذر 1389, 13:49 عصر
باید به وسیله تابع FindWindow هندل فرم مربوط به برنامه ، به وسیله FindWindowEX هندل مربوط به TextBox و Button مورد نظر رو به دست بیارید و به وسیله تابع SendMessage یا PostMessage و پارامترهای WM_SetText و WM_LBUTTONDBLCLK متن مورد نظر رو به TextBox بفرستید و رو دکمه کلیک کنید و در آخر هم به وسیله WM_GetText متن مورد نظر رو از TextBox دوم بخونید .

توابعی که نام بردم رو تو MSDN جست و جو کنید .

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


اگر ممکنه نمونه برنامه ای بدید ویا کد های مربوطه.

با تشکر از توجه شما

omid-vbAuto
جمعه 12 آذر 1389, 13:54 عصر
سلام
فهم سوال، نصف جوابه! (نفهميدم كه چي گفتيد!)

یعنی اینکه بیام برناممو از طریق برنامه دیگه فراخوانی کنم


يعني شما 2 تا پروژه داريد و ميخوايد كه دو تا برنامه رو با هم ادغام كنيد؟
يا اينكه
ميخوايد با Sender يك Button خروجي يك TextBox رو فراخواني كنيد؟












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

omid-vbAuto
شنبه 13 آذر 1389, 17:30 عصر
دوستان عزیز لطفا کمک کنید :افسرده:

omid-vbAuto
یک شنبه 14 آذر 1389, 17:02 عصر
بابا همش باید سوالات سخت جواب بدین؟

یه بار هم سوالات آسون جواب بدین . :لبخند:

من همچنان منتظرم.

pouyansaraf
یک شنبه 14 آذر 1389, 17:27 عصر
سلام
احتمالا منظورتون استفاده از برنامه ای که دیگران نوشته اند در برنامه حودمان است بدون اینکه کاربر متوجه شود که برنامه شما درحال استفاده از برنامه دیگری است!
خوب مومن بنویسش

omid-vbAuto
یک شنبه 14 آذر 1389, 17:50 عصر
سلام
احتمالا منظورتون استفاده از برنامه ای که دیگران نوشته اند در برنامه حودمان است بدون اینکه کاربر متوجه شود که برنامه شما درحال استفاده از برنامه دیگری است!
خوب مومن بنویسش

منظور من اینی که شما گفتین نبود.

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

ولی اگه اون چیزی رو که گفتین بشه انجام داد خیلی عالی میشه.یعنی به شیوه ای که شما هم گفتین مشکل من حل میشه.

حالا راه حل ارائه بدین.

hossein-khoshseyar
یک شنبه 14 آذر 1389, 19:10 عصر
باید به وسیله تابع FindWindow هندل فرم مربوط به برنامه ، به وسیله FindWindowEX هندل مربوط به TextBox و Button مورد نظر رو به دست بیارید و به وسیله تابع SendMessage یا PostMessage و پارامترهای WM_SetText و WM_LBUTTONDBLCLK متن مورد نظر رو به TextBox بفرستید و رو دکمه کلیک کنید و در آخر هم به وسیله WM_GetText متن مورد نظر رو از TextBox دوم بخونید .

توابعی که نام بردم رو تو MSDN جست و جو کنید .

دوست عزیز اتفاقا من هم قبلا دنبال چنین چیزی بودم
خیلی گشتم اما چیزی پیدا نکردم
اگه ممکنه یه نمونه کد بزارید

Felony
یک شنبه 14 آذر 1389, 19:43 عصر
دوست عزیز به MSDN مراجعه کردم .ولی نتونستم از مطالبش استفاده کنم.


اگر ممکنه نمونه برنامه ای بدید ویا کد های مربوطه.

با تشکر از توجه شما


دوست عزیز اتفاقا من هم قبلا دنبال چنین چیزی بودم
خیلی گشتم اما چیزی پیدا نکردم
اگه ممکنه یه نمونه کد بزارید

من تخصصم Delphi هست نه Net. ، ولی یکی از دوستان درخواست کرد تا یه نمونه برنامه قرار بدم تا خودش ترجمه کنه ، برنامه ای که تو پست اول قرار داده شده رو اجرا کنید و برنامه ضمیمه شده رو هم اجرا کنید و متنی داخل Editbox بنویسید و دکمه Send Message رو بزنید .

hossein-khoshseyar
یک شنبه 14 آذر 1389, 20:19 عصر
من تخصصم Delphi هست نه Net. ، .

با اینکه تخصص شما دلفی هست اما به یکی از تاپیک های من راجع به تفاوت Directcast , CType خیلی خوب و کامل پاسخ دادید اما وقتی ازتون خواستم به یک تاپیک مشابه
http://barnamenevis.org/showthread.php?262857-%D8%AA%D9%81%D8%A7%D9%88%D8%AA-Ctype%28x-Double%29-Convert.Todouble%28x%29-Cdbl%28x%29-va
پاسخ بدید چیزی نگفتید!!!

Felony
یک شنبه 14 آذر 1389, 21:37 عصر
با اینکه تخصص شما دلفی هست اما به یکی از تاپیک های من راجع به تفاوت Directcast , CType خیلی خوب و کامل پاسخ دادید اما وقتی ازتون خواستم به یک تاپیک مشابه
http://barnamenevis.org/showthread.php?262857-%D8%AA%D9%81%D8%A7%D9%88%D8%AA-Ctype%28x-Double%29-Convert.Todouble%28x%29-Cdbl%28x%29-va
پاسخ بدید چیزی نگفتید!!!
چون اون موضوع فقط مربوط به Net. نبود و تو دلفی هم اینطور TypeCasting هار رو داریم و فقط اسمشون متفاوت هست ، من بعضی وقت ها یه سری مقالات Net. رو میخونم و برای همین هم جوابتون رو با توجه به دانسته هام از دلفی و مقالاتی که خونده بودم دادم ؛ در مورد اون سوالتون اطلاعی نداشتم ولی تو همون MSDN اگر با دقت بخونیدش و با هم مقایسه شون کنید اگر تفاوتی داشته باشن میفهمید .

موفق باشید .

omid-vbAuto
یک شنبه 14 آذر 1389, 22:33 عصر
من تخصصم Delphi هست نه Net. ، ولی یکی از دوستان درخواست کرد تا یه نمونه برنامه قرار بدم تا خودش ترجمه کنه ، برنامه ای که تو پست اول قرار داده شده رو اجرا کنید و برنامه ضمیمه شده رو هم اجرا کنید و متنی داخل Editbox بنویسید و دکمه Send Message رو بزنید .

مهندس برنامتون کار نمیکونه.خودتون چک کردین؟

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

ولی تو برنامه ای که شما گذاشتین یه تکسباکس داره که شما می گین send میکنه به برنامه ی پست اول (که در واقع این کارو نمی کنه) حالا تازه فرض کنیماین کارو هم کرد نتیجه رو چطوری نشون میده؟!!!

Felony
یک شنبه 14 آذر 1389, 23:04 عصر
مهندس برنامتون کار نمیکونه.خودتون چک کردین؟

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

ولی تو برنامه ای که شما گذاشتین یه تکسباکس داره که شما می گین send میکنه به برنامه ی پست اول (که در واقع این کارو نمی کنه) حالا تازه فرض کنیماین کارو هم کرد نتیجه رو چطوری نشون میده؟!!!

کار که میکنه ، یه دکمه دیگه هم برای دریافت جواب از برنامه دوم اضافه کردم ، یه عکس هم ضمیمه کردم که نشون میده برنامه درست کار میکنه ، اگر هم میخواین دکمه ای که تو برنامه دوم هست رو خودتون از طریق برنامه اول کلیک کنید پیغام WM_LButtonDown و WM_LButtonUp رو به هندل دکمه ارسال کنید .6315863152

omid-vbAuto
یک شنبه 14 آذر 1389, 23:11 عصر
کار که میکنه ، یه دکمه دیگه هم برای دریافت جواب از برنامه دوم اضافه کردم ، یه عکس هم ضمیمه کردم که نشون میده برنامه درست کار میکنه ، اگر هم میخواین دکمه ای که تو برنامه دوم هست رو خودتون از طریق برنامه اول کلیک کنید پیغام WM_LButtonDown و WM_LButtonUp رو به هندل دکمه ارسال کنید .

مهندس برنامه ای که نوشتین هیچ کاری نمیکنه .این هم عکس:


63155
http://barnamenevis.org/images/misc/pencil.png

Felony
دوشنبه 15 آذر 1389, 06:24 صبح
مهندس برنامه ای که نوشتین هیچ کاری نمیکنه .این هم عکس:


63155
http://barnamenevis.org/images/misc/pencil.png

شاید مشکل از Unicode در Net. یا ... هست ، من برنامه رو یه تغییر دیگه دادم که با Unicode مشکلی نداشته باشه از ضمیمه همون پست قبل دریافتش کنید ، اگر باز هم باهاش مشکل داشتید بهتره همون کدها رو به Net. تبدیل کنید و هر دو برنامه رو با Net. بنویسید .

omid-vbAuto
دوشنبه 15 آذر 1389, 11:59 صبح
شاید مشکل از Unicode در Net. یا ... هست ، من برنامه رو یه تغییر دیگه دادم که با Unicode مشکلی نداشته باشه از ضمیمه همون پست قبل دریافتش کنید ، اگر باز هم باهاش مشکل داشتید بهتره همون کدها رو به Net. تبدیل کنید و هر دو برنامه رو با Net. بنویسید .

مهندس از زحمات شما خیلی ممنونم

ولی باز ههمون ایراد رو میده.من تعجب می کنم که چطور تو سیستم من ایراد میده ؟ چون اون برنامه در سیستم شما به خوبی کار می کنه!!!

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

Felony
دوشنبه 15 آذر 1389, 12:22 عصر
مهندس از زحمات شما خیلی ممنونم

ولی باز ههمون ایراد رو میده.من تعجب می کنم که چطور تو سیستم من ایراد میده ؟ چون اون برنامه در سیستم شما به خوبی کار می کنه!!!

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

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

pouyansaraf
دوشنبه 15 آذر 1389, 12:53 عصر
با سلام
من هر دو برنامه را در یک پوشه ریختم جواب داد

omid-vbAuto
دوشنبه 15 آذر 1389, 13:06 عصر
با سلام
من هر دو برنامه را در یک پوشه ریختم جواب داد
دقیقا چکار کردین؟فقط exe ها رو یه جا ریختین؟