امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
هندل اشیاء از کلاس Qwidget
نویسنده پیام
javadi_31456 آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 1
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
Exclamation  هندل اشیاء از کلاس Qwidget
مشکلی که در

Qwidget دارم :

من هندل اشیاء رو از برنامه ی دیگر می گیرم و کنترل آن ها رو در دست می گیرم .
در برنامه ی مورد نظر وقتی آبجکت رو می گیرم احساس می کنم که اشیاء داخلی تری وجود داره که نمی تونم به اونها دسترسی داشته باشم مثلا متنی هست که داخل یک ریچ تکست باکس هست ولی من نمی تونم متن اون رو با برنامم بخونم . ولی وقتی تست می کنم مثل این که پرنت اون رو مییتونم بگیرم اما به فرزندان داخل اون دسترسی ندارم
اینم بگم که با برنامه های معمولی خیلی راحت کار کردم ولی به این کلاس که رسیدم به مشکل خوردم
ممنون می شم دوستانی که در این زمینه اطلاعات دارند راهنمایی کنن .

جهت اطلاع از روش استفاده شده کد های زیر رو مشاهده کنید :

نمونه توابع استفاده شده به زبان وی بی :

Private Declare Function SendMessageA Lib "user32" (ByVal hwnd As IntPtr, _
ByVal wMsg As Integer, _
ByVal wParam As IntPtr, _
ByVal ByVallParam As IntPtr) _
As Integer

Private Declare Auto Function FindWindow Lib "user32" (ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As IntPtr

Private Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As IntPtr, _
ByVal lpEnumFunc As EnumChildWindowsCallBack, _
ByVal lParam As Integer) _
As Boolean

Private Callback As New EnumChildWindowsCallBack(AddressOf EnumChildWindowsProc)
Delegate Function EnumChildWindowsCallBack(ByVal Child_hWnd As IntPtr, ByVal lParamCalled As IntPtr) As Boolean





نمونه کد من

Dim Window_hWnd As IntPtr = FindWindow(Nothing, "Maintenance Console") '<=Replace "Test Application"

'STEP 2)
'Using a callback function and "EnumChildWindows",
'get the handle of all the children and grand children of the window
If Window_hWnd <> 0 Then
Dim NotUsed As Boolean = EnumChildWindows(Window_hWnd, Callback, Nothing)
End If


'STEP 3)
'get the text
'You will have to find the right index to use for ListOfChild in the "SendMessage"
'The only way will be using the "Trial and error" method
'Unless some controls get added and removed dynamicly in that 3rd party application, the
'index should always remain the same
'MaxTextLength has 201 bytes : 200 char max + terminating null character.
Dim MaxTextLength As Integer = 200
Dim Pointer As IntPtr = System.Runtime.InteropServices.Marshal.AllocHGloba l(MaxTextLength) '
Dim TextLength As Integer = SendMessageA(ListOfChild(0), WM_GETTEXT, CType(MaxTextLength, IntPtr), Pointer)




اینم یک مثال دیگه که متن داخل یک WordPadرو می خونم باهاش

Dim hwnd As Integer = FindWindow(Nothing, "Document - WordPad")
Dim hwndchild As Integer = FindWindowEx(hwnd, 0, "RICHEDIT50W", vbNullString)
Dim TextLen As Integer = SendMessage(hwndchild, WM_GETTEXTLENGTH, 0, 0)
Dim Buffer As String = New String(" "c, TextLen)
SendMessageByString(hwndchild, WM_GETTEXT, TextLen, Buffer)
۲۸-مرداد-۱۳۹۱, ۱۰:۱۳:۲۷
ارسال‌ها
پاسخ
javadi_31456 آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 1
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #2
RE: هندل اشیاء از کلاس Qwidget
فکر می کنم یه چیزی شبیه کلاس ToolbarWindows32 باشه .
داخل ویندوز Xp وقتی هندل تولبار پایین ویندوز قسمت Quick Launch رو می گیریم یه شی ء هست که Text اون Quick Launch هست ولی هندل برنامه هایی که داخلش قرار داده شدند رو نمی تونیم بدست بیاریم .
که احتمالا این شی ء یه خاصیتی داره که می شه این اطلاعات رو ازش درآورد .

احتمالا کلاس Qt یا همون Qwidget هم اینجوری باشه .
دوستان ؟! لطفا راهنمایی کنید
۲۸-مرداد-۱۳۹۱, ۱۲:۰۵:۵۸
ارسال‌ها
پاسخ
sobhan93 آفلاین
تازه وارد

ارسال‌ها: 13
موضوع‌ها: 2
تاریخ عضویت: شهریور ۱۳۸۹

تشکرها : 1
( 3 تشکر در 3 ارسال )
ارسال: #3
RE: هندل اشیاء از کلاس Qwidget
اسم این کلاس اشناس !
فک کنم توی برنامه نیمباز دیدم اینو.
منم نتونستم باهاش کار کنم. !
۲۸-مرداد-۱۳۹۱, ۱۸:۴۳:۳۸
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] فرق Property با Get و Set و Let در کلاس eppagh 2 2,660 ۱۴-مرداد-۱۳۹۳, ۰۹:۲۶:۲۶
آخرین ارسال: eppagh
  کار با هندل policweb 12 9,341 ۲۴-شهریور-۱۳۹۲, ۰۹:۴۲:۲۳
آخرین ارسال: lord_viper
  سوالاتی درباره ی هندل javaweb 7 7,499 ۱۸-خرداد-۱۳۹۲, ۱۴:۲۱:۲۸
آخرین ارسال: Di Di
  [سوال] یک سوال ساده در مورد هندل thinkdiff 1 2,838 ۱۴-فروردین-۱۳۹۲, ۱۳:۱۶:۲۸
آخرین ارسال: Di Di
  [سوال] اجرا نشدن دستورات هندل کردن خطا در محیط IDE وی بی flush 6 6,016 ۰۵-اسفند-۱۳۹۱, ۲۱:۴۹:۳۵
آخرین ارسال: Payman62
Question پیدا کردن هندل یک شی که caption آن را نمیدانیم crafcrab 12 10,810 ۱۹-بهمن-۱۳۹۰, ۰۹:۵۱:۱۸
آخرین ارسال: lord_viper
Question [سوال] برنامه استخراج هندل اشیا crafcrab 2 2,902 ۱۲-بهمن-۱۳۹۰, ۱۰:۰۹:۴۷
آخرین ارسال: Di Di
  [سوال] هندل کامند Send یاهو p8tir 0 1,930 ۱۸-آبان-۱۳۹۰, ۱۹:۴۱:۲۸
آخرین ارسال: p8tir
Question [سوال] گرفتن هندل یک کنترل برنامه خارجی HamedFaa 2 3,287 ۱۱-اردیبهشت-۱۳۹۰, ۱۲:۲۹:۰۳
آخرین ارسال: HamedFaa
  پیدا کردن هندل یک برنامه از روی اسم پروسس آن crafcrab 1 2,281 ۲۶-آذر-۱۳۸۹, ۱۴:۲۳:۱۶
آخرین ارسال: crafcrab

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS