برگزیده های پرشین تولز

چطور ميتونم دكمه يا پنجره اي رو غير فعال كنم؟؟

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
سلام به همه دوستان!
من ميخوام با استفاده از توابع api كاري كنم كه مثلا دكمه 4 ماشين حساب ويندوزdisable بشه
فكر كنم با دو تابع Enable Window و Find Window بايد سروكله بزنم. يه نگاهي هم به هلپه vb6 كردم. ولي باز نميتونم درست كدنويسي كنم. يه برنامه هم دانلود كردم به نام Showwin v 2.0 كه
Classname , windowhandle , windowId و يه سري اطلاعات ديگرو معين ميكنه
دوستان من چجوري ميتونم دكمه 4 ماشين حساب ويندوز را غيز فعال كنم با اين تواصيف؟؟
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
اول باید handler ماشین حساب رو پیدا کنی بعد تمامی childهاش رو با EnumWindow بگیرید و دکمه 5 و 4 رو پیدا کنید تا مخفیشون کنید.
 

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
اول باید handler ماشین حساب رو پیدا کنی بعد تمامی childهاش رو با EnumWindow بگیرید و دکمه 5 و 4 رو پیدا کنید تا مخفیشون کنید.
ممنون دوست عزيز
فقط اي كاش يه مثال عملي (مثل همين دكمه 4 ماشين حساب ويندوز) هم زده بودين كاملا مفهومي تر شه.
من خودم موضوع را درك ميكنم ولي در نوشتن كد مربوطه گير كردم
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
شانس شما من امروز بیکارم ;)
 

فایل های ضمیمه

  • New Folder.zip
    5.1 KB · نمایش ها: 10

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
شانس شما من امروز بیکارم ;)

ممنون بلا جان! بازم به شانس من:D
يه چيزه ديگه هم دوست داشتم ياد بگيرم
در همين مثال چگونه ميتوان كاري كرد كه به جاي غير فعال شدن دكمه هاي 4 يا 5 رويداد كليك براي آنها اتفاق بيفتد
يا مثلا رويداد كليك براي دكمه close ماشين حساب انجام بشه؟
امكان چنين كاري هست!!!!:happy:
 

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
ممنون دوست عزيز!
من اين مطلب رو طوطي وار ياد گرفتم چون
اين يكي دو روزه هر چي اين ور و اون ور سرچ كردم هيچ مدل ديگري از روش بكار گيري توابع
Public Function EnumChildProc
و
EnumChildWindows
پيدا نكردم. مثل اينكه فقط يك اصلوب خاص داره و نميشه روش مانور داد و به صورت هاي ديگري بكارش برد
به قول معروف
همينه كه هست ميخواي بخواه نمي خواي نخواه چكارت كنم ( نقل قول از طرف كامپايلر وي بي 6 بود):)
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به این روش میگن subclass کردن. راه دیگه ای برای APIهایی که فانکشن callback دارن نیست. همه فانکشنهایی که callback دارن نهایتا میرسن به دستور addressof که باید یه تابع سراسری با مشخصات اون کال بک باشه. این enumchild هم اطلاعات رو کال بک میکنه و باید حتما ساب کلاسش کرد :}
 

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
اگر hwndش رو پیدا کنید بله راحت میشه. اینم یه مثال:
http://vbnet.mvps.org/index.html?code/intrinsic/buttonpress.htm

شرمنده من باز يا مشكل برام پيش اومده
در مورد مثال رويداد كليك من پريروز يه نمونه با خود كدهاي موجود در مثال درست كردم و خوب بود
الان كه اومدم از كد مذكور تو برنامم استفاده كنم گيج شدم چي به چيه! و كار نميكنه برنامم.
قربون دستت بلا جان! يه مثال ساده خودت بزن تا ما آماتور ها هم بتونيم حضمش كنيم
مثال اين بابا پياز داغش زياده براي من!
يه توضيح مختصري هم بدي كه ديگه عالي ميشه:blush:
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
enum که hwndها رو میده دیگه. کافیه فقط چهار تا دستور پرس رو با sendmessage بفرستید بهش.
اینجوری:
 

فایل های ضمیمه

  • New Folder2.zip
    6.1 KB · نمایش ها: 9

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
enum که hwndها رو میده دیگه. کافیه فقط چهار تا دستور پرس رو با sendmessage بفرستید بهش.
اینجوری:
خداييش خيلي كارت درسته رفيق.:)
راستي چرا پي سي تولز دكمه تشكر ندلره:blink:
 
بالا