PDA

View Full Version : بدست آوردن آدرس صفحه سایت



S_VB.max
دوشنبه 13 فروردین 1386, 14:03 عصر
سلام

من به کمک سورس زیر هندل ، کلاس و متن هر شی را با حرکت نشانگر موس بر روی آن بدست می آورم ، حالا فرض کنید یک صفحه اینترنت اکسپلورر در حال حاضر فعال باشه می خوام بدونم چجوری می تونم بدون اینکه نشانگر موس را روی "آدرس بار" ببرم متن داخل اونا بدست آورم ؟

romina2006
دوشنبه 13 فروردین 1386, 17:11 عصر
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE
Private Sub GetURLstring_Click()
On Error GoTo CallErrorA
Dim buffer As String, TextLength As Long, sClassName As String
Dim lhwnd As Long, WindowHandle As Long
lhwnd = 0
sClassName = ("IEFrame")
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("WorkerW")
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("ReBarWindow32")
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("ComboBoxEx32")
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("ComboBox")
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("Edit")
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
WindowHandle& = lhwnd
TextLength& = SendMessage(WindowHandle&, WM_GETTEXTLENGTH, 0&, 0&)
buffer$ = String(TextLength&, 0&)
Call SendMessageByString(WindowHandle&, WM_GETTEXT, TextLength& + 1, buffer$)
MsgBox buffer$
Exit Sub
CallErrorA:
MsgBox Err.Description
Err.Clear
End Sub

S_VB.max
دوشنبه 13 فروردین 1386, 17:54 عصر
خیلی ممنون دوست عزیز

S_VB.max
چهارشنبه 15 فروردین 1386, 08:23 صبح
با عرض معذرت یه مشکل دیگه :
موزیلافایرفاکس این اجازه را به من نمی ده تا هندل آدرس بار اونا بدست بیاورم شما چه راهکاری ارائه می کنید تا بتونم متن داخل آدرس بار را بخونم ؟

CodeMasterX
چهارشنبه 15 فروردین 1386, 08:52 صبح
ولی من یه سوا دیگه دارم!
چحوری میشه مثل مزیلا فایر فاکس برنامه رو امن کرد که نشه هندل پنجره ها و کنترل ها رو گرفت ؟>

حامد مصافی
چهارشنبه 15 فروردین 1386, 09:05 صبح
بنیاد موزیلا چهارچوب خاصی برای نوشتم برنامه هاش داره که منحصر به خودشونه
برنامه هایی مثل Netscape, Chatzilla, Gozilla, Mozilla و امثالهم همگی با این چهارچوب نوشته میشن.

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

به کمک Spy++ می توانید وجود یک پنجره واحد را تست کنید (MozillaWindowClass)

CodeMasterX
چهارشنبه 15 فروردین 1386, 14:28 عصر
ممنون BlackDal.
پس اینطور که من می دونم همچین کاری رو با وی بی 6 نمیشه پیاده سازی کرد نه ؟
بعد ببینم کلا اطلا راهی هست که هیچ جوری نشه هندل های برنامه رو ردیابی کرد ؟

حامد مصافی
چهارشنبه 15 فروردین 1386, 15:03 عصر
هندل هر برنامه در ویندوز قابل شناساییه.
مسئله اینه که خانواده موزیلا فقط یک پنجره و بالطبع یک هندل دارند.

برای روشن شدن موضوع بذار یه مثال بزنم شما هرگز نمی تونید هندل کنترل Label رو در برنامه های وی بی بدست بیارید.

چون اصلاً پنجره نیست و فقط توسط توابع API نوشتن و ترسیماتی رو روی والد خودش انجام میده.

CodeMasterX
چهارشنبه 15 فروردین 1386, 22:46 عصر
گرفتم ممنون!