ورود

View Full Version : سوال: كنترل از راه دور باتن هاي ماشين حساب كامپيوتر



meisam.jafarian
جمعه 27 شهریور 1388, 16:04 عصر
با سلام
برنامه اي نوشته ام كه بتوانم تحت آن يكي از كليد هاي ماشين حساب را بزنم
در تاپيك ها مشابه آن جهت دسترسي به Yahoo messenger بود خيلي هم مفيد بود . ولي كامل نبود.برنامه ام را مينويسم لطفا اگر امكان دارد بگوييد كجاي آن ايراد دارد و در صورت امكان آنرا تصحيح نماييد.پيشاپيش سپاسگذارم




() void CAsdDlg::OnButton1
}
;(hndl = FindWindowEx(0, 0, "SciCalc", NULL
;swnd.m_hWnd=hndl
;()swnd.GetLastActivePopup
;(swnd.ShowWindow(SW_RESTORE
;()swnd.SetForegroundWindow
;("hndl=FindWindowEx(hndl,0,"Button","1
;swnd.m_hWnd=hndl
;(swnd.EnableWindow(TRUE
;(swnd.SendMessage(BN_CLICKED,0,0
{


در ضمن پس از اجراي برنامه ماشين حساب بالا مي آيد ولي دگمه "1" زده نميشود

A_Salimi
شنبه 28 شهریور 1388, 22:37 عصر
بله !چند وقت پیش من اینطور بحثی رو آغاز کردم که در نهایت با کمک نیما به نتیجه رسیدم.

در اونجا من قصد داشتم که دکمه sign in را در یاهو مسنجر فشار دهم که رعایت این نکات الزامی است :

1-با Spy ++ ببینید که پنجره ای که قصد گرفتن هندل آن را دارید در چه زیر پنجره هایی قرار دارند.
2- فقط با FindWindowEx به فکر گرفتن هندل زیر پنجره ها باشید.
3-با SendMessage پیغامتان را ارسال نمایید.

در آن تایپیک کد های کامل قرار داده نشد ولی من کدی را که با آن دکمه یاهو را فشار دادم را می آورم :


HWND Parenthw=::FindWindow(NULL,_T("Yahoo! Messenger with Voice (BETA)"));
HWND Firstch=::FindWindowEx(Parenthw,NULL,NULL,_T("YLoginWnd"));
HWND Secondch=::FindWindowEx(Firstch,NULL,NULL,_T("&Sign In"));

::PostMessage(Secondch,WM_KEYDOWN,VK_RETURN,1);

می بینید که از پنجره ای به نام YLoginWnd در خط دوم استفاده شده که این بدان معناست که ممکن است پنجره هایی وجود داشته باشند که شما اسمشان را به طور طبیعی نمی بینید و بایستی از Spy استفاده کنید.

meisam.jafarian
پنج شنبه 02 مهر 1388, 14:01 عصر
آقا يا خانم سليمي عزيز
بسيار از راهنماييتون متشكرم.
من با WM_KEYDOWN جواب نگرفتم ولي با BM_CLICK جواب گرفتم
راستي با سوال شما بود كه من هم به اين موضوع علاقه مند شدم.
به هر حال سبب خير شديد مطلب جالبي رو ياد بگيرم.
ممنون