PDA

View Full Version : سوال: فرستادن پارامتر به برنامه exe با دانستن title



3dboy1
سه شنبه 12 مرداد 1389, 17:10 عصر
با سلام

نمیدونم منظورم رو فهمیدین یا نه

یک برنامه exe هست که در اون تعدادی text قرار داره

و من میخوام از طریق title اون text ها اطلاعات خودم رو داخل text ها بریزم

با دستور : SendMessageSTRING txtMhWnd.Text, WM_SETTEXT, 256, Text1 میشه از طریق hwnd این کار رو کرد ، اما hwnd هر بار تغییر میکنه

امیدوارم متوجه سوال شده باشین

ممنون میشم که کمکم کنید.
با تشکر

vbhamed
سه شنبه 12 مرداد 1389, 17:16 عصر
سلام

اگر پنجرتون بالاي ساير پنجره ها هست مي تونيد با تابع GetForeGroundWindow هندل اون رو هر بار بدست بياريد اگر هم نه ابتدا با AppActivate خود وي بي اون بالا بيارينش و بعد با GetForeGroundWindow هندل رو بدست بياريد

3dboy1
سه شنبه 12 مرداد 1389, 17:31 عصر
سلام

اگر پنجرتون بالاي ساير پنجره ها هست مي تونيد با تابع GetForeGroundWindow هندل اون رو هر بار بدست بياريد اگر هم نه ابتدا با AppActivate خود وي بي اون بالا بيارينش و بعد با GetForeGroundWindow هندل رو بدست بياريد
ممنون از پاسختون
اما متاسفانه منظور من رو متوجه نشدین
هندل پنجره برام مهم نیست
من title های text ها رو دارم
میخوام از طریق title ها یک پارامتر به text ها بفرستم
باز هم ممنون

محسن شامحمدی
سه شنبه 12 مرداد 1389, 17:55 عصر
منظور شما از عنوان تکست چیه؟
شما می تونی با تابع findwindow ابتدا عنوان پنجره رو بدی و بعد هندلشو بگیری و سپس بقیه کارها

3dboy1
سه شنبه 12 مرداد 1389, 18:38 عصر
منظور شما از عنوان تکست چیه؟
شما می تونی با تابع findwindow ابتدا عنوان پنجره رو بدی و بعد هندلشو بگیری و سپس بقیه کارها

در شکل یک برنامه هست که 4 عدد text بر روی اون قرار گرفته

و من میخوام به این چهار تا text پارامترهای متفاوتی بفرستم

هر بار هم که برنامه اجرا میشه هندل تکست های روی فذم تغییر میکنه
اما title های text ها ثابت هست
چطور میشه به این تکست ها مقادیر بفرستم

با sendkeys خطا زیاده
با دستور SendMessageSTRING txtMhWnd.Text, WM_SETTEXT, 256, Text1 میشود مقادیر بفرستم
اما هندل text ها عوض میشه
میشه با دادن title ، هندل پیدا کرد؟
برای این کار میشه از دستورات FindWindowEx یا مشابه استفاده کرد؟
یا اصلا دستوری باشه که با دادن title مستقیم به برنامه پارامتر ارسال کرد؟

modirmasool
چهارشنبه 13 مرداد 1389, 10:25 صبح
شرمنده ها:خجالت: چون دیدم شما در این باره سوال کردین منم با اجازه تون یه سوال در همین باره اینجا مطرح می کنم:
کلا آیا راهی هست که وقتی کاربر در یک برنامه ی دیگه روی یه دکمه کلیک کرد ما از طریق فرستادن پیام به اون برنامه، کپشن اون دکمه رو از اون برنامه درخواست کنیم؟ و دوم این که به طور کلی میشه کاری کرد تا به وسیله ی برنامه ی ما ، در یه نرم افزار دیگه منو باز بشه یا دکمه ای زده بشه؟
ممنون.

Saman_12
چهارشنبه 13 مرداد 1389, 11:18 صبح
سلام در جواب modirmasool باید بگم که با داشتن هندل اون شی کار های زیادی میشه (البته با SndMessage)
یه نگاه به سورس زیر بندازین تقریبا تمام پیغام هایی که میشه فرستاد توش هست.(البته من با این Api آشنایی زیادی ندارم حتی با هاش کار نکردم) :

vbhamed
چهارشنبه 13 مرداد 1389, 16:34 عصر
در شکل یک برنامه هست که 4 عدد text بر روی اون قرار گرفته

و من میخوام به این چهار تا text پارامترهای متفاوتی بفرستم

هر بار هم که برنامه اجرا میشه هندل تکست های روی فذم تغییر میکنه
اما title های text ها ثابت هست
چطور میشه به این تکست ها مقادیر بفرستم

با sendkeys خطا زیاده
با دستور SendMessageSTRING txtMhWnd.Text, WM_SETTEXT, 256, Text1 میشود مقادیر بفرستم
اما هندل text ها عوض میشه
میشه با دادن title ، هندل پیدا کرد؟
برای این کار میشه از دستورات FindWindowEx یا مشابه استفاده کرد؟
یا اصلا دستوری باشه که با دادن title مستقیم به برنامه پارامتر ارسال کرد؟

سلام

تكست باكس كه به خودي خود Title نداره كه شما مي گين Title تكست باكس رو دارين
تو اين شكل هم به نظر مياد يك سري Label كنار يك سري تكست باكس گذاشته شده كه مي تونن هر جاي ديگه فرم هم باشن، پس از روي اونها نميشه فهميد تكست باكس مورد نظر كدومه

3dboy1
چهارشنبه 13 مرداد 1389, 19:38 عصر
سلام

تكست باكس كه به خودي خود Title نداره كه شما مي گين Title تكست باكس رو دارين
تو اين شكل هم به نظر مياد يك سري Label كنار يك سري تكست باكس گذاشته شده كه مي تونن هر جاي ديگه فرم هم باشن، پس از روي اونها نميشه فهميد تكست باكس مورد نظر كدومه

سلام خدمت شما دوستان
اول از همه تشكر كه نظر و كمك دادين
حرف شما درست
در اكثر برنامه ها title خالي
اما در برنامه مورد نظر من تكست ها title دارن
و همانطور كه اطلاع دارين هندل هاي برنامه تغيير ميكنن
اما title ها ثابت
بلاخره يك راه پيدا كردم


ميزارم تا دوستان نيز استفاده كنن
و ميشود همه كليدها و تكست ها و ... فرم را كنترل كرد
كليك ، فعال و غير فعال و ....


به اين برنامه يه نگاه بندازين elitespy1

modirmasool
پنج شنبه 14 مرداد 1389, 00:40 صبح
این EliteSpyرو دیده بودم جالبه ولی همه جا کار نمیکنه. مثلا تو Mycomputer نمیتونه درایوهارو تشخیص بده یا دکمه های Back و Searchو.... که در Toolbar هستن رو تشخیص نمیده.
میشه کاری کرد که همه جا رو کامل تشخیص بده؟