|
Post by Alexander on Feb 15, 2004 1:30:10 GMT -5
Hey everyone im trying to work out how to get the contents of the msn chat control text box in vb where all the text that has been posted is located any help would be helpful
|
|
|
Post by Dangermouse on Feb 15, 2004 3:48:55 GMT -5
I have a program where you hover over something and it gives you some API information or something. Ill upload it later, my host is down atm.
|
|
|
Post by Dangermouse on Feb 15, 2004 8:38:14 GMT -5
|
|
Tewl
xTeam
C# & VB Developer
Posts: 495
|
Post by Tewl on Feb 15, 2004 11:50:21 GMT -5
Need a form a webbrowser control and 2 menu buttons and a module
Form1 webbrowser1 mnuHook mnuUnHook
'/// this is an example i found a while back '/// by dynamic sysop w/ a little editing '/// of my own to get it working
Option Explicit
Private Sub Form_Load() WebBrowser1.Navigate "http://chat.msn.com/chatroom.msnw?rm=tewlzbox" End Sub
Private Sub mnuhook_Click()
Dim lrtn As Long Dim eRt As Long Dim lv_hWnd As Long
lrtn = FindWindowEx(wb_hWnd, ByVal 0&, "#32770", vbNullString) eRt = FindWindowEx(lrtn, ByVal 0&, "ATL:37243F28", vbNullString) eRt = FindWindowEx(eRt, ByVal 0&, "ATL:MSNChatListView4", vbNullString) lv_hWnd = GetNextWindow(eRt, 2) OldWindowProc = SetWindowLongW(lv_hWnd, GWL_WNDPROC, AddressOf NewWindowProc) mnuUnHook.Enabled = True mnuHook.Enabled = False End Sub
Private Sub mnuunhook_Click() SetWindowLongW lv_hWnd, GWL_WNDPROC, OldWindowProc mnuUnHook.Enabled = False mnuHook.Enabled = True End Sub
Public Sub ListView_Down(ByVal hWnd As Long, ByVal lParam As Long) Dim hdr As HITTESTINFO Dim LVI As LV_ITEM Dim sBuffer As String * 256 Dim lIndex As Long Dim bb(32) As Byte
mAL.All = lParam
LSet mLH = mAL With hdr .pt.x = mLH.Lo .pt.y = mLH.Hi .flags = LVHT_ONITEM End With lIndex = SendMessageW(hWnd, LVM_HITTEST, ByVal 0&, hdr) With LVI .mask = LVIF_TEXT .pszText = VarPtr(bb(0)) ' sBuffer .cchTextMax = UBound(bb) ' Len(.pszText) End With
Dim aStr&, Text$
aStr = SendMessageW(hWnd, LVM_GETITEMTEXTA, ByVal lIndex, LVI)
Text = Left$(StrConv(bb, vbUnicode), aStr) Me.Caption = Text End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim l As Long, sl As Long '/// get the webbrowser's handle. l = FindWindowEx(Form1.hWnd, ByVal 0&, "Shell Embedding", vbNullString) l = FindWindowEx(l, ByVal 0&, "Shell DocObject View", vbNullString) l = FindWindowEx(l, ByVal 0&, "Internet Explorer_Server", vbNullString) wb_hWnd = l End Sub
module
Option Explicit
Public OldWindowProc As Long Public wb_hWnd As Long Public lv_hWnd As Long
Public Type POINTAPI x As Long y As Long
End Type Public Type RECT Left As Long Top As Long Right As Long Bottom As Long
End Type '////////////////////////////////////// Public Type TLoHiLong '//// this section is to convert the Lo As Integer '//// paramiters of the long to the Hi As Integer '//// co-ordinates of the mouse on the End Type '//// listview... Public Type TAllLong All As Long End Type Public mLH As TLoHiLong Public mAL As TAllLong '////////////////////////////////////// Public Type HITTESTINFO pt As POINTAPI flags As Long iItem As Long iSubItem As Long End Type Public Type LV_ITEM mask As Long iItem As Long iSubItem As Long state As Long stateMask As Long pszText As Long cchTextMax As Long iImage As Long lParam As Long iIndent As Long End Type
Public Const GWL_WNDPROC = (-4) Public Const MAX_PATH = 256 Public Const WM_LBUTTONDOWN = &H201 Public Const LVN_FIRST = -100& Public Const LVM_FIRST = &H1000 Public Const LVIF_TEXT = &H1
Public Const LVM_GETITEMTEXTA As Long = (LVM_FIRST + 45) Public Const LVM_GETITEMTEXT As Long = (LVM_FIRST + 45) Public Const LVM_GETITEMTEXTW = (LVM_FIRST + 115) Public Const LVM_HITTEST As Long = (LVM_FIRST + 18) Public Const LVHT_ABOVE = &H8 Public Const LVHT_BELOW = &H10 Public Const LVHT_TORIGHT = &H20 Public Const LVHT_TOLEFT = &H40 Public Const LVHT_NOWHERE As Long = &H1 Public Const LVHT_ONITEMICON As Long = &H2 Public Const LVHT_ONITEMLABEL As Long = &H4 Public Const LVHT_ONITEMSTATEICON As Long = &H8 Public Const LVHT_ONITEM As Long = (LVHT_ONITEMICON Or _ LVHT_ONITEMLABEL Or _ LVHT_ONITEMSTATEICON) Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public 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 Public Declare Function CallWindowProcW Lib "user32" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hWnd As Long, ByVal wFlag As Long) As Long Public Declare Function GetWindowLongW Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Public Declare Function SetWindowLongW Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function SendMessageW Lib "user32" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function IsWindowUnicode Lib "user32" (ByVal hWnd As Long) As Long
Public Function NewWindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long On Error GoTo ProcError
Select Case uMsg Case WM_LBUTTONDOWN Form1.ListView_Down hWnd, lParam NewWindowProc = CallWindowProcW(OldWindowProc, hWnd, uMsg, wParam, lParam) Case Else NewWindowProc = CallWindowProcW(OldWindowProc, hWnd, uMsg, wParam, lParam) End Select
ProcError[img]http://proboards8.com/boardimages/sad.gif[/img]br]If Err.Number > 1 Then Debug.Print Err.Description Err.Clear Exit Function End If End Function
|
|