mbshareat
جمعه 25 فروردین 1391, 21:16 عصر
سلام
من یه برنامه دارم که به برنامه در حال اجرای دیگه ای پیام میده.
برنامم به خوبی می تونه به برنامه دوم پیام بده ولی از اونجا که می خوام به کاربر بگم که اگه برنامه پس زمینه در حالت مورد نظر نبود در اون برنامه به همون حالت منتقل بشه باید مطمئن بشم که برنامه دوم پس زمینه در حالت خاصی قرار داره یا نه؟
به همین دلیل سعی کردم پنجره برنامه پس زمینه رو بالاترین پنجره قرار بدم(Z Order اون رو صفر؟! کنم) و قسمتی از تصویرش رو بررسی کنم.
برای این کار از کدهای زیر استفاده کردم. امانه تنها کمکی نکرد مانع ارسال پیغام WM_Char هم شد!
Application.ProcessMessages;
SetForeGroundWindow(NoorFormHandle);
SetActiveWindow(NoorFormHandle);
Windows.SetFocus(NoorFormHandle);
SendMessage(NoorFormHandle,WM_Activate,0,0);
SendMessage(NoorFormHandle,WM_MOUSEACTIVATE,0,0);
Application.ProcessMessages;
به نظرم پارامترهای بعد از دوم رو باید درست تنظیم کنم.
توی دلفی یه جورایی توضیح داده بود من نفهمیدم.مثلا این توضیح چیه؟:
WM_ACTIVATE
fActive = LOWORD(wParam); // activation flag
fMinimized = (BOOL) HIWORD(wParam); // minimized flag
hwndPrevious = (HWND) lParam; // window handle
این برنامه چندتا محیط داره که نمی دونم چطوری باید بفهمم برنامه در کدوم محیطه.
به همین دلیل مجبورم تصویر رو بررسی کنم ببینم تصویر صفحه چطوریه.
به نظر شما چطور می تونم پنجره برنامه دوم رو فعال کنم؟
ببخشید هزارتا سوال کردم.فعلا همین که بدونم چطور پنجره دیگه ای رو فورا فعال کنم برام کافیه.
از دوستان عزیز کمال تشکر رو دارم...
من یه برنامه دارم که به برنامه در حال اجرای دیگه ای پیام میده.
برنامم به خوبی می تونه به برنامه دوم پیام بده ولی از اونجا که می خوام به کاربر بگم که اگه برنامه پس زمینه در حالت مورد نظر نبود در اون برنامه به همون حالت منتقل بشه باید مطمئن بشم که برنامه دوم پس زمینه در حالت خاصی قرار داره یا نه؟
به همین دلیل سعی کردم پنجره برنامه پس زمینه رو بالاترین پنجره قرار بدم(Z Order اون رو صفر؟! کنم) و قسمتی از تصویرش رو بررسی کنم.
برای این کار از کدهای زیر استفاده کردم. امانه تنها کمکی نکرد مانع ارسال پیغام WM_Char هم شد!
Application.ProcessMessages;
SetForeGroundWindow(NoorFormHandle);
SetActiveWindow(NoorFormHandle);
Windows.SetFocus(NoorFormHandle);
SendMessage(NoorFormHandle,WM_Activate,0,0);
SendMessage(NoorFormHandle,WM_MOUSEACTIVATE,0,0);
Application.ProcessMessages;
به نظرم پارامترهای بعد از دوم رو باید درست تنظیم کنم.
توی دلفی یه جورایی توضیح داده بود من نفهمیدم.مثلا این توضیح چیه؟:
WM_ACTIVATE
fActive = LOWORD(wParam); // activation flag
fMinimized = (BOOL) HIWORD(wParam); // minimized flag
hwndPrevious = (HWND) lParam; // window handle
این برنامه چندتا محیط داره که نمی دونم چطوری باید بفهمم برنامه در کدوم محیطه.
به همین دلیل مجبورم تصویر رو بررسی کنم ببینم تصویر صفحه چطوریه.
به نظر شما چطور می تونم پنجره برنامه دوم رو فعال کنم؟
ببخشید هزارتا سوال کردم.فعلا همین که بدونم چطور پنجره دیگه ای رو فورا فعال کنم برام کافیه.
از دوستان عزیز کمال تشکر رو دارم...