PDA

View Full Version : سوال: دسترسی به کنترلهای سایر پنجره های باز ویندوز



mahdi87_gh
شنبه 23 مرداد 1389, 16:46 عصر
سلام
هدفم اینه که بتونم دکمه ای از یک برنامه دیگر رو کلیک کنم. فرض کنید برنامه ای مثل calculator بازه و میخواهیم یکی از دکه های اون رو کلیک کنیم.

Mani_rf
شنبه 23 مرداد 1389, 17:13 عصر
برای این کار باید از توابع API استفاده کنی. تابعی به نام SendMessage وجود دارد که این عمل را انجام می دهد.
اطلاعات بیشتر = جستجو

saeedalg
شنبه 23 مرداد 1389, 17:34 عصر
برو تو:

All programs->Visual studio->tools -> spy

یه آیتمی تو این نرم افزار هست به اسم Find Window با استفاده از اون میتونی handle یه ویندوز رو بدست بیاری (یه آیکون مثله برف داره ولی سیاه بکش رو پنجره (باتن) مورد نظرت)، اما تو برنامه چی جوری میتونی این کار رو بکنی؟ اول تو spy سلسله مراتب اون رو بدست میآری بعد با FindWindow ویندوز پدر رو بدست میآری و انقدر میری جلو که ویندوز بچه رو بدست بیاری، حالا با SendMessage یا PostMessage واسش پیغام ارسال میکنی(کلا POST بهتره فرقش رو تو اینترنت بخون، فرمت دقیقشم یا همینه یا PostWindowMessage ولی تو گوگل بزن پیدا میکنی) ، برای اینکه ببینی چه پیغامهایی میتونی بفرستی روی WM_Command تو MSDN2001 یا گوگل Search کن همه چیز رو برات نشون میده، با همون Spy میتونی Track کنی که چه WM_Commandای رو برنامه برای مثلا فشار دادن دکمه 9 از ماشین حساب ارسال میکنه، حوصله ندارم توضیح بدم باهاش ور بری میفهمی، اگر یه وقت Find Window ی SPY رو انداختی رو جایی به عنوان Window قبولش نکرد حتما ویندوز نیست و شکل کشیدن. همین کار رور میتونی به راحتی انجام بدی مثلا یه ویروس بنویسی که هر چی ویندوز وا میشه ببنده (خیلی ساده).