PDA

View Full Version : مبتدی: پیدا کردن class شی مورد نظر با handle



just4froum
جمعه 25 شهریور 1390, 13:01 عصر
با سلام به همگی :

می خواستم ببینم آیا راهی وجود دارد که با هندل یک شی class name شی مورد نظر را بدست آوریم .

با تشکر

محسن واژدی
جمعه 25 شهریور 1390, 13:15 عصر
سلام علیکم
از APIی GetClassName بصورت زیر استفاده کنید:

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Sub Command1_Click()
Dim cls_nam$, cls_len&
cls_nam$ = String(256, Chr(0))
cls_len& = GetClassName(Me.hwnd, cls_nam$, Len(cls_nam$))
cls_nam$ = Left$(cls_nam$, cls_len&)
MsgBox cls_nam$
End Sub


موفق باشید

just4froum
جمعه 25 شهریور 1390, 13:22 عصر
جناب mohsenvj (http://barnamenevis.org/member.php?104729-mohsenvj) از شما بسیار متشکرم.

فقط میشه یک توضیح مختصر راجع به آرگومان های این تابع بدید.

با تشکر از شما

setroyd
جمعه 25 شهریور 1390, 13:39 عصر
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

ByVal hwnd As Long همون هندلی هست که باید اسم کلاسش برگردانده شود .

ByVal lpClassName As String در اینجا یک متغیر قرار میدهیم که مقدار را به ما برگرداند .

ByVal nMaxCount As Long این مشخص میکند چه مقدار از متغیری که برای برگرداندن کلاس نوشته شده تابع به ما برگرداند .


cls_nam$ = String(256, Chr(0))در اینجا مشخص میکنیم که متغیر 255 کاراکتر خالی توش ایجاد شود که تابع بتواند مقدار خود را در داخل ان بریزد چون متغیر خام قبول نمیکند که میشه حتی از space(255) استفاده کرد .


Len(cls_nam$) در اینجا هم گفته شده کل مقدار برگشتی که میشه 255 را در متغیر قرار بده .

محسن واژدی
جمعه 25 شهریور 1390, 13:39 عصر
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
این تابع سه آرگومان دارد:
hwnd: هندل شی یا فرم
lpClassName : بافری را برای نگهداری کلاس ایجاد میکند، البته همانگونه که در کد فوق مشاهده میکنید، ابتدا یک بافر را توسط Space یا String و ... ایجاد میکنیم
nMaxCount : طول بافر را مشخص میکند

مقدار برگشتی تابع GetClassName طول کلاس است که از آن برای جدا کردن نام کلاس از بافر استفاده میکنیم

موفق باشید