PDA

View Full Version : سوال: چگونه روی مسیج باکس کلیک کنم ؟



aradrobo
چهارشنبه 15 آذر 1391, 16:24 عصر
سلام .
من یک برنامه دارم . که وقتی روی باتن برنامه ام کلیک می کنم . یک مسیج باکس نمایش داده می شود و پیغام OK در آن نمایش داده می شود که باید رویش کلیک انجام شود تا کار ادامه پیدا کند .

این پیغام از سوی نرم افزار من تولید نمی شود . بلکه نرم افزار من به یک سایت متصل شده است . و وقتی کارش را با موفقیت انجام می دهد ، web browser پیغامی را نمایش می دهد به صورت message box که دارای باتن ok می باشد . حال سوالم این است که چه کنم این پیغام از سوی صادر کننده ( یعنی همین سایتی که درون web browser موجود است) صادر نشود ( نمایش ندهد در برنامه ام ) و یا اینکه به صورت خودکار برنامه روی پیغام ok نمایش داده شده کلیک انجام دهد .

مهرداد صفا
پنج شنبه 16 آذر 1391, 09:58 صبح
سلام
در ساده ترین حالت میتوانید با استفاده از متود System.Windows.Forms.SendKeys.Send کلید enter را به جعبه پیغام ارسال کنید تا عمل کلیک با استفاده از کیبورد انجام شود.

aradrobo
پنج شنبه 16 آذر 1391, 12:14 عصر
سلام
در ساده ترین حالت میتوانید با استفاده از متود System.Windows.Forms.SendKeys.Send کلید enter را به جعبه پیغام ارسال کنید تا عمل کلیک با استفاده از کیبورد انجام شود.

خوب من نمی دانم که چه زمانی پنجره مسیج باکس ظاهر می شود .
لذا دستور زیر را در چه جایی قرار دهد ؟
sendkeys.send("{enter}");

مهرداد صفا
پنج شنبه 16 آذر 1391, 15:04 عصر
خوب من نمی دانم که چه زمانی پنجره مسیج باکس ظاهر می شود .
لذا دستور زیر را در چه جایی قرار دهد ؟
sendkeys.send("{enter}");


در یک timer با استفاده از توابع GetActiveWindow و یا GetForeGroundWindow هندل پنجره فعال را گرفته و با استفاده از تابع GetWindowText عنوان پنجره را به دست آورده با عنوان پنجره پیغام مطابقت دهید. در صورت تطابق کلید را ارسال کنید.

aradrobo
شنبه 18 آذر 1391, 19:12 عصر
در یک timer با استفاده از توابع GetActiveWindow و یا GetForeGroundWindow هندل پنجره فعال را گرفته و با استفاده از تابع GetWindowText عنوان پنجره را به دست آورده با عنوان پنجره پیغام مطابقت دهید. در صورت تطابق کلید را ارسال کنید.

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

aradrobo
چهارشنبه 22 آذر 1391, 15:32 عصر
کسی نمی داند باید چه کنم ؟

aradrobo
جمعه 24 آذر 1391, 09:44 صبح
یعنی واقعاً کسی در این زمینه کار نکرده است ؟

اگر چیزی می دانید لطفاً راهنمایی کنید.

morteza5358
جمعه 24 آذر 1391, 10:53 صبح
سلام يه برنامه نوشتم كه هر چند ثانيه يك بار عنوان پنجره فعال رو نشون ميده.
اين هم عكس هاي زمان اجرا:

اگر فقط فرم باز باشه ، عنوان فرم رو نشون ميده
http://morteza5358.persiangig.com/CSharp/1.jpg

اگر مسيج باكسي توي فرم باز باشه ، عنوان مسيج باكسه رو نشون ميده
http://morteza5358.persiangig.com/CSharp/2.jpg

اين هم خود پروژه (http://morteza5358.persiangig.com/CSharp/WindowsFormsApplication2.zip)

كار شما اينه كه به جاي نشان دادن عنوان پنجره ، چك كنه كه اگه عنوان پنچره با عنوان اون مسيج باكسه كه ميخواين ببندين برابره ، كليد اينتر رو براش بفرسته.اوكي؟

aradrobo
جمعه 24 آذر 1391, 10:58 صبح
سلام يه برنامه نوشتم كه هر چند ثانيه يك بار عنوان پنجره فعال رو نشون ميده.
اين هم عكس هاي زمان اجرا:

اگر فقط فرم باز باشه ، عنوان فرم رو نشون ميده
http://morteza5358.persiangig.com/CSharp/1.jpg

اگر مسيج باكسي توي فرم باز باشه ، عنوان مسيج باكسه رو نشون ميده
http://morteza5358.persiangig.com/CSharp/2.jpg

اين هم خود پروژه (http://morteza5358.persiangig.com/CSharp/WindowsFormsApplication2.zip)

كار شما اينه كه به جاي نشان دادن عنوان پنجره ، چك كنه كه اگه عنوان پنچره با عنوان اون مسيج باكسه كه ميخواين ببندين برابره ، كليد اينتر رو براش بفرسته.اوكي؟


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

morteza5358
جمعه 24 آذر 1391, 11:02 صبح
ميشه يه قطعه كد مثال بذارين تا دقيقا بدونم بايد چيكار كنم؟

SHD.NET
جمعه 24 آذر 1391, 11:02 صبح
میتونی قبل آوردن اون توی وب براوزر سورسشو لود کنی توی تکست باکس . بعد با دستورات کار با متن اون یه تیکه کد رو از تکست باکس حذف کنی و بعدش اون کدهایی که توی تکست باکس هست رو لود کنی توی وب براوزر . من خودم یه جا از این روش استفاده کردم . اگه خواستی آدرس سایتشو بده تا برات بررسیش کنم

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

morteza5358
جمعه 24 آذر 1391, 11:05 صبح
برنامه اي كه براتون فرستادم عنوان هر برنامه اي كه باز شده رو نشون ميده. حتي اگه مال برنامه خودمون هم نباشه.
لطفا چك كنيد.

براي مثال:
http://morteza5358.persiangig.com/CSharp/3.jpg

aradrobo
جمعه 24 آذر 1391, 11:15 صبح
برنامه اي كه براتون فرستادم عنوان هر برنامه اي كه باز شده رو نشون ميده. حتي اگه مال برنامه خودمون هم نباشه.
لطفا چك كنيد.

براي مثال:
http://morteza5358.persiangig.com/CSharp/3.jpg

برنامه شما با 2010 باز نمی شود . از نت فریم ورک 4.5 استفاده شده . میشه با نت فریم ورک 4 بنویسید ؟ متشکرم

morteza5358
جمعه 24 آذر 1391, 11:26 صبح
پيشنهاد ميكنم از Visual Studio 2012 استفاده كنيد.فوق العادس
ولي به هرحال...
لينك (http://morteza5358.persiangig.com/CSharp/Test.zip)

aradrobo
جمعه 24 آذر 1391, 11:27 صبح
میتونی قبل آوردن اون توی وب براوزر سورسشو لود کنی توی تکست باکس . بعد با دستورات کار با متن اون یه تیکه کد رو از تکست باکس حذف کنی و بعدش اون کدهایی که توی تکست باکس هست رو لود کنی توی وب براوزر . من خودم یه جا از این روش استفاده کردم . اگه خواستی آدرس سایتشو بده تا برات بررسیش کنم

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

http://send.faxe.ir/index.php?language=Farsi#

این سایت رو باز کن . وقتی کد کپچا رو توش نزنی یک مسیج باکس باز میشه . دیدی ؟

aradrobo
جمعه 24 آذر 1391, 11:33 صبح
پيشنهاد ميكنم از Visual Studio 2012 استفاده كنيد.فوق العادس
ولي به هرحال...
لينك (http://morteza5358.persiangig.com/CSharp/Test.zip)

سایتی که دادم رو نگاه کنید . برنامه شما فکر نمی کنم به کار من ربطی داشته باشه . درسته ؟

morteza5358
جمعه 24 آذر 1391, 11:37 صبح
http://morteza5358.persiangig.com/CSharp/4.jpg

aradrobo
جمعه 24 آذر 1391, 11:45 صبح
دوست عزیز . برنامه شما فقط به ما میگوید که اسم پنجره باز شده چی هست . من یک وب بروزر دارم توی برنامم . که سایت بالا رو باز می کنم توش . حالا نمی خوام اصلاً اون پنجره Destination is not ..... نشان داده شود . حالا باید چه کنم ؟

morteza5358
جمعه 24 آذر 1391, 11:49 صبح
دوست خوبم دستورات برنامه من رو بذار تو يه تايمر كه مرتب عنوان پنجره ها رو در بياره.
با يه شرط ساده if مي گي كه اگه عنوان پنجره مساوي با The Page at send.faxe.ir says بود دستور زير رو اجرا كنه:
sendkeys.send("{enter}");
در نهايت هر وقت چنين پنجره اي باز شد.برنامت سريع اونو ميبنده.اوكي؟

aradrobo
جمعه 24 آذر 1391, 17:47 عصر
دوست خوبم دستورات برنامه من رو بذار تو يه تايمر كه مرتب عنوان پنجره ها رو در بياره.
با يه شرط ساده if مي گي كه اگه عنوان پنجره مساوي با The Page at send.faxe.ir says بود دستور زير رو اجرا كنه:
sendkeys.send("{enter}");
در نهايت هر وقت چنين پنجره اي باز شد.برنامت سريع اونو ميبنده.اوكي؟

این کار رو کردم . بی فایده بود .
شما یک وب بروزر بسازید . و سایت رو بهش بدین . ببینید واسه شما کار میکنه ؟
یعنی میتونین کاری کنین که پیغام دیگه نمایش نده .

morteza5358
جمعه 24 آذر 1391, 19:00 عصر
سلام مجدد
وقت اين كار رو واقعا ندارم
اگه خودتون بسازين و بفرستين روش كار ميكنم

aradrobo
جمعه 24 آذر 1391, 19:28 عصر
سلام مجدد
وقت اين كار رو واقعا ندارم
اگه خودتون بسازين و بفرستين روش كار ميكنم

شماره موبایل رو عدد وارد کنید . نمونه ارسال شد . کاری کنید که وقتی 3 تا فیلک اول تکمیل شد . و ارسال رو زدیم . پیغام نمایش ندهد . مرسی

morteza5358
جمعه 24 آذر 1391, 22:00 عصر
سلام
برنامه كامل شد.
بلافاصله بعد از باز شدن پيام ،‌ برنامه كاراكتر "Enter" رو براش ميفرسته و بسته ميشه.

تشكر يادتون نره!!!
دانلود (http://morteza5358.persiangig.com/CSharp/WindowsFormsApplication3.zip)

aradrobo
شنبه 25 آذر 1391, 15:46 عصر
خیلی ممنون . مشکلم حل شد .

alnajon
چهارشنبه 06 دی 1391, 19:48 عصر
ببخشید میشه بگید چطور میشه متن پیام رو آورد توی برنامه !؟!؟ مثلا اگر پیام داد ok همون پیام رو بیاریم تو تکست باکس داخل برنامه !!؟

aradrobo
پنج شنبه 07 دی 1391, 12:30 عصر
ببخشید میشه بگید چطور میشه متن پیام رو آورد توی برنامه !؟!؟ مثلا اگر پیام داد ok همون پیام رو بیاریم تو تکست باکس داخل برنامه !!؟

فکر نکنم بشه

morteza5358
پنج شنبه 07 دی 1391, 12:36 عصر
سلام
من هم فکر نکنم که بشه.
چون ممکنه اون پنجره ای که باز شده اصلا توش متن نباشه!!!!پس نباید انتظار داشت که متدی برای درآوردن متن درون پنجره فعال وجود داشته باشه.

morteza5358
پنج شنبه 07 دی 1391, 12:40 عصر
بهترین کار اینه که به url اون صفحه که اون پیام ازش باز میشه دقت کنید...
مثلا چک کنید اگه همون پنجره ای هست که شما میخواین پیامش رو ببندین پیام بسته بشه و الا پیام رو نبندین.....

البته اگه کلا یه صفحه باشه این صدق نمیکنه......:متفکر:

باید یه فکری کنید که پیامی که از وب در برنامتون باز میشه ، عنوانش عوض نشه!!!

aradrobo
پنج شنبه 07 دی 1391, 12:59 عصر
بهترین کار اینه که به url اون صفحه که اون پیام ازش باز میشه دقت کنید...
مثلا چک کنید اگه همون پنجره ای هست که شما میخواین پیامش رو ببندین پیام بسته بشه و الا پیام رو نبندین.....

البته اگه کلا یه صفحه باشه این صدق نمیکنه......:متفکر:

باید یه فکری کنید که پیامی که از وب در برنامتون باز میشه ، عنوانش عوض نشه!!!

خوب یعنی حتی نمی شه فهمید چه پیغام هایی با چه متن هایی نمایش داده می شه ؟ آحه باید یه راهی وجود داشته باشه.