PDA

View Full Version : سوال: سوال در مورد پنجره دارای focus و send massage



king_killer
جمعه 29 اسفند 1393, 15:41 عصر
سلام
میخواستم یه برنامه درست کنم که یه تایمر داشته باشه که یک عدد مثلا 1 رو برای یک نرم افزار در حال اجرا بفرسته(نرم افزار دریافت کننده دارای فوکوس نیست پس نمیشه از sendkey استفاده کرد)

تا جایی که فهمیدم باید از sendmassage استفاده کرد که با استفاده از handle کلید مورد نظر رو برای نرم افزاری که handle اول وارد شده ارسال میکنه
ولی درست نفمیدم چه طور از sendmassage استفاده کنم
اگه کسی بلده راهنمایی کنه لطفا کامل بگید
اگر با زبانی به غیر از C#‎‎ هم تونستید بگید زیاد فرقی نداره با چه زبانی باشه

ممنون

plus
جمعه 29 اسفند 1393, 16:52 عصر
میتونید پیغام WM_KEYDOWN (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646280%28v=vs.85%29.aspx) و بعد پیغام WM_KEYUP (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646281%28v=vs.85%29.aspx)‌ رو با پارامترهای مناسب به پنجره مورد نظر بفرستید هرچند کلا این روشها توصیه نمیشه.

king_killer
جمعه 29 اسفند 1393, 19:13 عصر
میتونید پیغام WM_KEYDOWN (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646280%28v=vs.85%29.aspx) و بعد پیغام WM_KEYUP (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646281%28v=vs.85%29.aspx)‌ رو با پارامترهای مناسب به پنجره مورد نظر بفرستید هرچند کلا این روشها توصیه نمیشه.
سلامی دوباره
ممنون از پاسختون
ولی اینا رو دیده بودم توی پست اول هم گفتم مشکلم اینه که نفهمیدم چه جوری باید از sendmassage استفاده کرد
یعنی پارامتراش جریانشون چیه
اگه میشه یکم در مورد اونا هم توضیح بدید

plus
جمعه 29 اسفند 1393, 21:34 عصر
سلام. متوجه نشدم دقیقا چه چیزی رو نفهمیدین. در لینک‌هایی که دادم پارامتر‌های مورد نظر با جزئیات توضیح داده شدن.
برای مثال برای KEY_UP و پارامتر اول یا wParam:

Parameters

wParam

The virtual-key code of the nonsystem key. See Virtual-Key Codes.

باید کد virtual key کلید مورد نظر رو به عنوان این پارامتر ارسال کنید.
این موضوع برای سایر پارامترها و ... هم همه در MSDN ذکر شده.
--
ولی اگه یک دید کامل از اینکه داستان ارسال Message چی هست و چه اتفاقی می‌افته، میتونید یک کتاب مربوط به Windows Programming‌ رو مطالعه کنید. اگه اشتباه نکنم کتاب مناسبی از Microsoft Press در این مورد بود.

king_killer
شنبه 01 فروردین 1394, 00:02 صبح
سلامی دوبارهههههههههه :بوس:
یافتممممممممممممممم
با این کد مشکلم حل شددددددددد
VM = new VMessages("window name"); if (VM.windowExists())
{ VM.sendText(txtBoxSend.Text); }
اگر سورس کامل پروژه رو میخواستید
از اینجا (http://www.vivid-abstractions.net/logical/programming/tutorials/video-tutorial-send-keys-to-an-inactive-window-windows-messages/)میتونید پیداش کنید
2 تا ویدیو داره + سورس پروژه
زیر ویدیو ها زده Source Code! (http://www.vivid-abstractions.net/wp-content/plugins/download-monitor/download.php?id=28)
tnx :قهقهه: