Skip to content
Home > Programming > vb.net get pal room name & send text

vb.net get pal room name & send text

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #187179
    jimmyng
    Member

    hi guy
    anyone tried to findpalwindows & get text chat in vb.net please help
    i tried to convert source from vb6 to vb.net but however it give alot off error please help

    thnks

    #187194
    autopilot
    Member

    you can check out VB 2008 Paltalk Integration, but the attachments are corrupted. hopefully loco has good backups that he can restore from.

    also you can check out the following series:
    How To: Creating Software Integrations Part1
    How To: Creating Software Integrations Part2
    How To: Creating Software Integrations Part3
    How To: Creating Software Integrations Part4
    How To: Creating Software Integrations Part5

    #187193
    jimmyng
    Member

    Thank Autopilot for ur reply

    do you still have these sample code with you please post & how to find pal windows too
    thank in advance

    #187192
    autopilot
    Member

    @jimmyng wrote:

    do you still have these sample code with you please post & how to find pal windows too

    i dont have the samples or screen shots, so hopefully loco has good backups and restores them.

    all the code samples you need are in the posts i pointed you to before. i am done with those too lazy to read and learn for themselves.

    #187191
    jimmyng
    Member

    hi autopilot
    i tried this code it seem working fine ,,,,however when i run it click on button some time it return with text sometime nothing please help…

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    ‘ReadTxtHnd()

    Dim sChatText As String = GetLastLineTextChat(ReadTxtHnd)
    Me.RichTextBox2.Text = (sChatText)
    End Sub



    Public Function GetLastLineTextChat(ByVal hwnd As Integer) As String
    Dim iLastLine As Integer
    DimstrBuffer As New StringBuilder(255) ‘String

    iLastLine = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0)

    sChatText = SendMessageString(hwnd, EM_GETLINE,iLastLine – 2,strBuffer)
    Return strBuffer.ToString
    End Function


    Public Function ReadTxtHnd() As Integer ‘ Incoming Chat Box
    iHnd = mdlGetHnd.SubFormHndByClassNameWithMWClassWithPartialMWCaption(mdlPalInfo.ChatRoomClass, Me.cbxRoomName.Text, mdlPalInfo.SplitterClass, mdlPalInfo.SplitterIndex)
    ‘ MsgBox(iHnd)
    iHnd = mdlGetHnd.SubFormHndByClassNameWithMWHnd(iHnd, mdlPalInfo.ChatTextClass, mdlPalInfo.ReadTextIndex)
    ‘ MsgBox(iHnd)
    ‘ Me.RichTextBox2.Text = sChatText
    Return iHnd

    End Function

    #187190
    Chike
    Member

    The first and second bytes (in your example) sourd be 255 and 0 repectively before sending EM_GETLINE message.

    #187189
    autopilot
    Member

    the only thing i see wrong with your code, and it should not cause intermitant working, is your sendmessage call

    sChatText = SendMessageString(hwnd, EM_GETLINE,iLastLine - 2,strBuffer)

    SendMessage returns an integer and not a string, but VB should do the type convertion without causing any errors.

    show us your SendMessageString decleration

    #187188
    jimmyng
    Member

    HI,
    this is how i did but it return intermitant & don’t know why 😡 😡 😥 😥
    please help …

     

     Public Declare Function GetWindow Lib "user32" (ByVal hWnd As Integer, ByVal wCmd As Integer) As Integer
    Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
    Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Public ClassName As String = String.Empty
    Public Const StringBufferLength As Integer = 255
    Public Const GW_CHILD As Long = 5
    Public Const GW_HWNDNEXT = 2
    'Public Const WM_GETTEXTLENGTH = &HE
    'Public Const WM_GETTEXT = &HD
    Public Const EM_GETLINECOUNT = &HBA
    Public Const EM_GETLINE = &HC4
    
    '
    
    
    Public Function GetLastLineTextChat(ByVal hwnd As Integer) As String
    Dim iLastLine As Integer
    DimstrBuffer As New StringBuilder(255) 'String
    
    iLastLine = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0)
    
    sChatText = SendMessageString(hwnd, EM_GETLINE,iLastLine - 2,strBuffer)
    Return strBuffer.ToString
    End Function
    '
    
    ' <<<<>>
    '
    
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    'ReadTxtHnd()
    
    Dim sChatText As String = GetLastLineTextChat(ReadTxtHnd)
    Me.RichTextBox2.Text = (sChatText)
    End Sub
    
    '
    
    Public Function ReadTxtHnd() As Integer ' Incoming Chat Box
    iHnd = mdlGetHnd.SubFormHndByClassNameWithMWClassWithPartialMWCaption(mdlPalInfo.ChatRoomClass, Me.cbxRoomName.Text, mdlPalInfo.SplitterClass, mdlPalInfo.SplitterIndex)
    ' MsgBox(iHnd)
    iHnd = mdlGetHnd.SubFormHndByClassNameWithMWHnd(iHnd, mdlPalInfo.ChatTextClass, mdlPalInfo.ReadTextIndex)
    ' Me.RichTextBox2.Text = sChatText
    Return iHnd

     

    #187187
    jimmyng
    Member

    Got it work!!! Thank 😆 😆

    #187186
    jimmyng
    Member

    autopilot <<>this your

    #187185
    autopilot
    Member

    @jimmyng wrote:

    Got it work!!! Thank 😆 😆

    Glad to hear it! What did you find to be the problem?

    #187184
    jimmyng
    Member

    it work but seem still unstable for me did you tried the old way like use :


    Textlen = SendMessage(Ihwnd, WM_GETTEXTLENGTH, 0, 0)

    zText = Space$(Textlen)
    Textlen = SendMessage(Ihwnd, WM_GETTEXT, Textlen, ByVal zText)
    GetRoomText = Left$(zText, Textlen)

    this<> is not allow how to fix this issue

    #187183
    autopilot
    Member

    What operating system are you using?

    #187182
    Chike
    Member

    By doing what you do you set the first word of the buffer to 32×256+32=8224.
    If you’re looking for memory corruption you might just get it.

    #187181
    jimmyng
    Member

    i tried this way work fine for me

    Dim Textlen = SendMessage(hwnd, WM_GETTEXTLENGTH, 0, Nothing)
    Dim zText As New StringBuilder(Textlen)
    Textlen = SendMessageString(hwnd, WM_GETTEXT, Textlen, zText)

    this still intermiant

    iLastLine = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0)

    sChatText = SendMessageString(hwnd, EM_GETLINE,iLastLine – 2,strBuffer)

    use: VS 2010 (win7)

Viewing 15 posts - 1 through 15 (of 16 total)
  • You must be logged in to reply to this topic.