An easy VB 2010 Send and Gettext Sample

Listen Im lazy heheh, and I really want to make programs in VB 2010 but either am an idiot or can make none of the codes work for me I try the old 2008 method nothing lol all I need is a start so i can do this, please someone upload a working vb 2010 send and getlastline sample 🙂 so i can finally learn tha sht or im gonna get stuck in vb 6.0 lol

25 thoughts on “An easy VB 2010 Send and Gettext Sample

  1. String i did that 🙂 still when it was out of focus it didn’t work, aigh i think this is what you guys mean to do I added this code

    Private Function SendTextHandle() As Integer
    Dim iPHnd As Integer

    iPHnd = mdlGetHnd.SubFormHndByClassNameWithMWClassWithPartialMWCaption(mdlPalInfo.ChatRoomClass, Me.CtrlRoomSelector1.RoomName, mdlPalInfo.SplitterClass, mdlPalInfo.SplitterIndex)
    SendTextHandle = mdlGetHnd.SubFormHndByClassNameWithMWHnd(iPHnd, mdlPalInfo.ChatTextClass, mdlPalInfo.SendTextIndex)
    Debug.Print("SendTextHandle - " & SendTextHandle) ' for testing
    End Function
    Sub TxtSendPal(ByRef DisHere As String)
    Dim iHnd As Integer
    'Send Text
    iHnd = SendTextHandle
    SendMessageByString(iHnd, WM_SETTEXT, 0, DisHere)
    SendMessage(iHnd, WM_KEYDOWN, 13, 0)
    End Sub

    And I call it with

          TxtSendPal((ChatRTB1.Rtf))
    ChatRTB1.Focus()

    But the text in the rooms comes out with the char thingy like this

    {rtf1ansiansicpg1252deff0deflang1033{fonttbl{f0fnilfcharset0 Tahoma;}}
    {colortbl ;red255green0blue0;red146green0blue109;red36green0blue219;}
    viewkind4uc1pardcf1bf0fs24 ercf2 trecf3 trcf0par
    }

    Here how it is now 🙂

  2. Ah nice, 🙂 one thing auto how about connecting to the room, cause that only connects to the DlgGroupChat Window Class wont that be an issue if a person has other rooms open?
    Dep lol I finally install vb 2010 on my windows 7 pc ehehe that’s a start :mrgreen:

  3. @locohacker wrote:

    Ah nice, 🙂 one thing auto how about connecting to the room, cause that only connects to the DlgGroupChat Window Class wont that be an issue if a person has other rooms open?

    Yes, the demo will connect to what ever room is the room with focus. To connect to a specified room, add the PalRoomSelector as described in VB 2008 Paltalk Integration. Then find the button click event code and change the “vbNullString” in the following line:

    Dim hWndMain As IntPtr = FindWindow(sClass, vbNullString)

    Replace vbNullString with Me.CtrlRoomSelector1.RoomName

    Dim hWndMain As IntPtr = FindWindow(sClass, Me.CtrlRoomSelector1.RoomName)
  4. @Departure wrote:

    uninstall vb6 now and throw away the setup……

    Its similar to quitting smoking, The problem is “Habit” and its easier to do what you already know, instead of trying something new that can be beneficial..

    good advise …

  5. Function FindNic() As String

    the fact that it is a function means it returns a value, but the fact that there is nothing in the brackets () after FindNic means that you are not passing anything into that function.

    Return mdlSysListView.GetSLVSelectedItem(iHnd)

    the return line is what is being returned by the function. mdlSysListView.GetSLVSelectedItem should tell you that the function gets the selected nic from the room nic list.

    Dim SelectedNic as String = FindNic()
  6. Because nics jump around in the nic list (raise/lower hand, cam up/down, etc), I don’t try to enum the nics to “select” the one I want. In stead, I send the letters of the name to the nic list. This causes the nic to get selected automatically. Then I get the selected nic and compare it to the nic I am looking for. If it matches, then proceed with the bounce/dot.

  7. Cool 🙂 and can you change this code

    Dim X As Integer
    Dim UserNic As String
    ' Remove TimeStamp if it is present
    LineIn = StripTime(LineIn)
    ' look for : in text
    If InStr(LineIn, ":") Then
    ' Get index of :
    X = InStr(1, LineIn, ":")
    ' Get all text before :
    UserNic = Mid$(LineIn, 1, X - 1)
    ' Remove leading and trailing spaces
    UserNic = UserNic.Trim()
    ' Return found nic
    Return UserNic
    Else
    ' no nic found
    Return String.Empty
    End If

    To get the user messege too?
    Ah one thing I notice when the paltalk windows is out of focus the program seems to disconnect like it wont get no text or send text 🙄
    Man I already added the music bot and greeter and cool text on the program Im working on :mrgreen:

  8. @locohacker wrote:

    I am for sure using your text font style form I love it.

    Glad to help. I will have to put together a demo project for working with the nic list next. maybe i will have something by next weekend.

  9. Excellent, I finally got it how it works 🙂 and the code kicks asz, I am for sure using your text font style form I love it.
    Thanks a lot man :mrgreen:

  10. K figure how to get the text after using this : by changing this UserNic = Mid$(LineIn, 1, X – 1) to UserNic = Mid$(LineIn, X + 1)

        Private Function GetUserPostingText(ByVal LineIn As String) As String
    Dim X As Integer
    Dim UserNic As String
    ' Remove TimeStamp if it is present
    LineIn = StripTime(LineIn)
    ' look for : in text
    If InStr(LineIn, ":") Then
    ' Get index of :
    X = InStr(1, LineIn, ":")
    ' Get all text before :
    UserNic = Mid$(LineIn, X + 1)
    ' Remove leading and trailing spaces
    UserNic = UserNic.Trim()
    ' Return found nic
    Return UserNic
    Else
    ' no nic found
    Return String.Empty
    End If
    End Function

    🙂 so the only issue I got is the need to focus the program for it to work 🙄

  11. uninstall vb6 now and throw away the setup……

    Its similar to quitting smoking, The problem is “Habit” and its easier to do what you already know, instead of trying something new that can be beneficial..

  12. @locohacker wrote:

    so the only issue I got is the need to focus the program for it to work

    Basically, with the WindowFromPoint API, the window does not have to have focus, but it has to be visible at the point the application tries to look for it. WindowFromPoint gets the control that is showing at a point on the screen. If you want to allow for the Pal room to be in the background, then you will need to continue to use the enum windows method provided in the mdlHnd (see module to find handles).

  13. Hey Auto, I know you gonna work on the selecting nick thing next, but I got a quick question this code in your quickkeys program the module
    mdlSysListView.vb

    Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As IntPtr, ByVal lpAddress As IntPtr, ByVal dwSize As Integer, ByVal flAllocationType As Integer, ByVal flProtect As Integer) As IntPtr
    Declare Function VirtualFreeEx Lib "kernel32" (ByVal hProcess As IntPtr, ByVal lpAddress As IntPtr, ByVal dwSize As Integer, ByVal dwFreeType As Integer) As Integer
    Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As LV_ITEMA, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As LV_ITEMA, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Byte, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As StringBuilder, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcId As Integer) As IntPtr
    Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
    Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer

    Const StringBufferLength As Integer = 255
    Const LVM_FIRST As Integer = &H1000
    Const LVM_GETITEMCOUNT As Integer = (LVM_FIRST + 4)
    Const LVM_GETNEXTITEM As Integer = (LVM_FIRST + 12)
    Const LVM_FINDITEM As Long = (LVM_FIRST + 13)
    Const LVM_SETITEMPOSITION As Integer = (LVM_FIRST + 15)
    Const LVM_GETITEMPOSITION As Integer = (LVM_FIRST + 16)
    Const LVM_GETITEMTEXT As Integer = (LVM_FIRST + 45)
    Const LVM_SORTITEMS As Integer = (LVM_FIRST + 48)
    Const LVM_GETSELECTEDCOUNT As Integer = (LVM_FIRST + 50)
    Const LVM_GETITEM As Integer = (LVM_FIRST + 75)
    Const LVNI_SELECTED As Integer = &H2
    Const LVFI_PARAM As Integer = &H1
    Const LVIF_TEXT As Integer = &H1
    Const LVM_FINDITEMW As Integer = (LVM_FIRST + 83)
    Const LVIS_SELECTED As Integer = &H2
    Const LVIF_STATE As Integer = &H8
    Const LVM_SETITEMSTATE As Integer = (LVM_FIRST + 43)
    Const PROCESS_VM_OPERATION As Integer = &H8S
    Const PROCESS_VM_READ As Integer = &H10S
    Const PROCESS_VM_WRITE As Integer = &H20S
    Const MEM_COMMIT As Integer = &H1000S
    Const PAGE_READWRITE As Integer = &H4S
    Const MEM_RELEASE As Integer = &H8000S
    Const MEM_RESERVE As Integer = &H2000S


    Structure LV_ITEMA
    Dim mask As Integer
    Dim iItem As Integer
    Dim iSubItem As Integer
    Dim state As Integer
    Dim stateMask As Integer
    Dim pszText As Integer
    Dim cchTextMax As Integer
    Dim iImage As Integer
    Dim lParam As Integer
    Dim iIndent As Integer
    End Structure

    Public Function SLVItemIndex(ByVal lstviewhwnd As IntPtr, ByVal Item As String, ByRef ItemIndex As Integer) As Boolean
    Dim result As Integer
    Dim myItem As LV_ITEMA
    Dim pHandle As Integer
    Dim pStrBufferMemory As Integer
    Dim pMyItemMemory As Integer
    Dim strBuffer() As Byte
    Dim index As Integer
    Dim tmpString As String = String.Empty
    Dim ProcessID As Integer
    Dim ItemCount As Integer
    Dim i As Short

    ItemCount = SendMessage(lstviewhwnd, LVM_GETITEMCOUNT, 0, 0)
    '**********************
    'init the string buffer
    '**********************
    ReDim strBuffer(StringBufferLength)
    '***********************************************************
    'open a handle to the process and allocate the string buffer
    '***********************************************************
    Call GetWindowThreadProcessId(lstviewhwnd, ProcessID)
    pHandle = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, ProcessID)
    pStrBufferMemory = VirtualAllocEx(pHandle, 0, StringBufferLength, MEM_COMMIT, PAGE_READWRITE)
    '************************************************************************************
    'initialize the local LV_ITEM structure
    'The myItem.iSubItem member is set to the index of the column that is being retrieved
    '************************************************************************************
    myItem.mask = LVIF_TEXT
    myItem.iSubItem = 2
    myItem.pszText = pStrBufferMemory
    myItem.cchTextMax = StringBufferLength
    '**********************************************************
    'write the structure into the remote process's memory space
    '**********************************************************
    pMyItemMemory = VirtualAllocEx(pHandle, 0, Len(myItem), MEM_COMMIT, PAGE_READWRITE)
    result = WriteProcessMemory(pHandle, pMyItemMemory, myItem, Len(myItem), 0)

    '*************************************************************
    '*************************************************************
    '*************************************************************

    For i = 0 To ItemCount - 1
    '*************************************************************
    'send the get the item message and write back the memory space
    '*************************************************************
    result = SendMessage(lstviewhwnd, LVM_GETITEMTEXT, i, pMyItemMemory)
    result = ReadProcessMemory(pHandle, pStrBufferMemory, strBuffer(0), StringBufferLength, 0)
    result = ReadProcessMemory(pHandle, pMyItemMemory, myItem, Len(myItem), 0)
    '**************************************************
    'turn the byte array into a string and send it back
    '**************************************************
    For index = LBound(strBuffer) To UBound(strBuffer)
    If Chr(strBuffer(index)) = vbNullChar Then Exit For
    tmpString = tmpString & Chr(strBuffer(index))
    Next index
    tmpString = Trim(tmpString)
    If LCase(tmpString) = LCase(Item) Or LCase(tmpString) = "@" & LCase(Item) Then
    ItemIndex = i
    SLVItemIndex = True
    Exit For
    End If
    tmpString = String.Empty
    Next

    '**************************************************
    'deallocate the memory and close the process handle
    '**************************************************
    result = VirtualFreeEx(pHandle, pStrBufferMemory, 0, MEM_RELEASE)
    result = VirtualFreeEx(pHandle, pMyItemMemory, 0, MEM_RELEASE)
    result = CloseHandle(pHandle)
    End Function

    Public Function HighLightSLVItem(ByVal hwnd As IntPtr, ByVal ItemIndex As Integer) As Boolean
    'found at http://www.tek-tips.com/viewthread.cfm?qid=1218628&page=1
    Dim lProcID As Integer
    Dim hProc As IntPtr
    Dim lxprocLVITEM As Integer
    Dim LVITEM As LV_ITEMA
    Dim lItemPos As Integer

    GetWindowThreadProcessId(hwnd, lProcID) ' Get the process ID in which the ListView is running
    If lProcID 0 Then
    hProc = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, lProcID) ' makwe sure we have read write permissions in the process space
    If hProc 0 Then
    lxprocLVITEM = VirtualAllocEx(hProc, 0, Len(LVITEM), MEM_RESERVE Or MEM_COMMIT, PAGE_READWRITE) ' Grab enough memory in the other procedure's space to hold our LV_ITEM

    ' Set up our local LV_ITEM to change the selected item
    LVITEM.mask = LVIF_STATE
    LVITEM.state = True
    LVITEM.stateMask = LVIS_SELECTED

    ' Copy the local LV_ITEM into the space we reserved in the foreign process
    WriteProcessMemory(hProc, lxprocLVITEM, LVITEM, Len(LVITEM), 0)

    ' Now send the message, but pass the address of the copy of our LV_ITEM that now exists in the foreign process instead of our local versiony
    lItemPos = ItemIndex ' first item
    SendMessage(hwnd, LVM_SETITEMSTATE, lItemPos, lxprocLVITEM)

    ' Clean up
    VirtualFreeEx(hProc, lxprocLVITEM, Len(LVITEM), MEM_RELEASE)
    CloseHandle(hProc)
    HighLightSLVItem = True
    End If
    End If
    End Function

    Public Function GetSLVSelectedItem(ByVal lstviewhwnd As IntPtr) As String
    Dim result As Integer
    Dim myItem As LV_ITEMA
    Dim pHandle As Integer
    Dim pStrBufferMemory As Integer
    Dim pMyItemMemory As Integer
    Dim strBuffer() As Byte
    Dim index As Integer
    Dim tmpString As String = String.Empty
    Dim ProcessID As Integer
    Dim usernum, itemIndex As Integer
    Dim i As Short
    itemIndex = SendMessage(lstviewhwnd, LVM_GETNEXTITEM, -1, LVNI_SELECTED)
    usernum = SendMessage(lstviewhwnd, LVM_GETITEMCOUNT, 0, 0)
    '**********************
    'init the string buffer
    '**********************
    ReDim strBuffer(StringBufferLength)
    '***********************************************************
    'open a handle to the process and allocate the string buffer
    '***********************************************************
    Call GetWindowThreadProcessId(lstviewhwnd, ProcessID)
    pHandle = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, ProcessID)
    pStrBufferMemory = VirtualAllocEx(pHandle, 0, StringBufferLength, MEM_COMMIT, PAGE_READWRITE)
    '************************************************************************************
    'initialize the local LV_ITEM structure
    'The myItem.iSubItem member is set to the index of the column that is being retrieved
    '************************************************************************************
    myItem.mask = LVIF_TEXT
    myItem.iSubItem = 2
    myItem.pszText = pStrBufferMemory
    myItem.cchTextMax = StringBufferLength
    '**********************************************************
    'write the structure into the remote process's memory space
    '**********************************************************
    pMyItemMemory = VirtualAllocEx(pHandle, 0, Len(myItem), MEM_COMMIT, PAGE_READWRITE)
    result = WriteProcessMemory(pHandle, pMyItemMemory, myItem, Len(myItem), 0)

    '*************************************************************
    '*************************************************************
    '*************************************************************

    i = itemIndex
    '*************************************************************
    'send the get the item message and write back the memory space
    '*************************************************************
    result = SendMessage(lstviewhwnd, LVM_GETITEMTEXT, i, pMyItemMemory)
    result = ReadProcessMemory(pHandle, pStrBufferMemory, strBuffer(0), StringBufferLength, 0)
    result = ReadProcessMemory(pHandle, pMyItemMemory, myItem, Len(myItem), 0)
    '**************************************************
    'turn the byte array into a string and send it back
    '**************************************************
    For index = LBound(strBuffer) To UBound(strBuffer)
    If Chr(strBuffer(index)) = vbNullChar Then Exit For
    tmpString = tmpString & Chr(strBuffer(index))
    Next index
    tmpString = Trim(tmpString)
    '**************************************************
    'deallocate the memory and close the process handle
    '**************************************************
    result = VirtualFreeEx(pHandle, pStrBufferMemory, 0, MEM_RELEASE)
    result = VirtualFreeEx(pHandle, pMyItemMemory, 0, MEM_RELEASE)
    result = CloseHandle(pHandle)
    If Len(tmpString) > 0 Then GetSLVSelectedItem = tmpString
    Return tmpString
    End Function

    Are you suppose to call it with this function?

      Function FindNic() As String
    Dim iHnd As IntPtr = mdlGetHnd.SubFormHndByClassNameWithMWClassWithPartialMWCaption(mdlPalInfo.ChatRoomClass, Me.CtrlRoomSelector1.RoomName, mdlPalInfo.NicListClass, mdlPalInfo.NicListIndex)
    Return mdlSysListView.GetSLVSelectedItem(iHnd)
    End Function

    By using this command
    FindNic(nick.text) To select the nick?

  14. Lol I fix it 🙂 I change auto thingy to work with string thingy and got this

        Private Function SendTxtHnd() As IntPtr
    Dim iPHnd As Integer

    iPHnd = mdlGetHnd.SubFormHndByClassNameWithMWClassWithPartialMWCaption(mdlPalInfo.ChatRoomClass, Me.CtrlRoomSelector1.RoomName, mdlPalInfo.SplitterClass, mdlPalInfo.SplitterIndex)
    SendTxtHnd = mdlGetHnd.SubFormHndByClassNameWithMWHnd(iPHnd, mdlPalInfo.ChatTextClass, mdlPalInfo.SendTextIndex)
    End Function
    Private Sub SendPalTxt(ByVal EBHnd As IntPtr, ByVal RTF As String)
    Dim iResult As Integer
    ' Send sext to send text window
    iResult = SendMessage(EBHnd, WM_SETTEXT, 0, RTF)
    ' simulate enter key press
    iResult = SendMessage(EBHnd, WM_KEYDOWN, 13, 0)
    ' simulate enter key release
    iResult = SendMessage(EBHnd, WM_KEYUP, 13, 0)
    End Sub
    Private Sub SendChat()
    SendPalTxt(SendTxtHnd, ChatRTB1.Rtf)
    ChatRTB1.Focus()
    End Sub

    and call it with

    SendChat()

    So no more weird sht char :swift:

  15. Yep I tried that method but is not returning the rooms title no more for me 🙂
    Check the code
    Paltalk MultiVB
    and this code was posted in http://forum.im-integrations.com/viewtopic.php?f=15&t=78

    '===========================
    'Find And Select Paltalk Room
    '===========================
    Private Delegate Function EnumWindowsCallback(ByVal hWnd As Integer, ByVal lParam As Integer) As Boolean
    Private Declare Function EnumWindows Lib "user32.dll" Alias "EnumWindows" (ByVal callback As EnumWindowsCallback, ByVal lParam As Integer) As Integer
    Private Declare Sub GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd As Integer, ByVal lpString As StringBuilder, ByVal nMaxCount As Integer)
    Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" (ByVal hwnd As Integer, ByVal lpClassName As StringBuilder, ByVal cch As Integer) As Integer
    Const StringBufferLength As Integer = 255
    Private ClassName As String = String.Empty
    '********************
    '** **
    '** Public Methods **
    '** **
    '********************
    'Method to return selected Paltalk Room
    Public ReadOnly Property RoomName() As String
    Get
    ' Return the text of the combobox
    Return cbxRoomName.Text
    End Get
    End Property
    '========================================================================
    Private Sub FindPalRooms()
    ' Enum all top windows
    EnumWindows(New EnumWindowsCallback(AddressOf FindChatRoomHandle), 0)
    End Sub
    '========================================================================
    Private Sub RoomRefresh()
    Try
    ' Clear the combobox list
    cbxRoomName.Items.Clear()
    ' Add all rooms to combobox list
    FindPalRooms()
    ' check if combobox text is empty
    If cbxRoomName.Text = String.Empty Then
    ' if combobox text is empty, fill it wit first room on the list
    cbxRoomName.Text = cbxRoomName.Items.Item(0).ToString
    Else
    ' if combobox text is not empty, make sure it is on the list
    If cbxRoomName.FindStringExact(cbxRoomName.Text) = -1 Then
    ' if combobox text is not on the list
    Try
    ' set combobox text to first room on the list
    cbxRoomName.Text = cbxRoomName.Items.Item(0).ToString
    Catch
    ' if no rooms are in the list, set combobox text to nothing
    cbxRoomName.Text = ""
    End Try
    End If
    End If
    Catch
    ' if room refresh failes, set combobox list & text to nothing
    cbxRoomName.Items.Clear()
    cbxRoomName.Text = ""
    End Try
    End Sub
    '=======================================================================
    Private Function FindChatRoomHandle(ByVal hWnd As Integer, ByVal lParam As Integer) As Boolean
    Dim ChatWindowText As New StringBuilder(StringBufferLength)
    Dim ChatClassName As New StringBuilder(StringBufferLength)
    ' Get the Class Name
    GetClassName(hWnd, ChatClassName, StringBufferLength)
    ' Check if it is a Paltalk roomng
    If ChatClassName.ToString = ClassName Then
    ' If a Paltalk room, get room name (window caption)
    GetWindowText(hWnd, ChatWindowText, StringBufferLength)
    ' Add a new Room name to the combobox list
    For Each sroomname As String In ListBox2.Items
    If ChatWindowText.ToString = sroomname Then
    cbxRoomName.Items.Add(ChatWindowText.ToString)
    End If
    Next
    End If
    ' Continue to next window
    Return True
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    FindPalRooms()
    RoomRefresh()
    End Sub
    Private Sub cbxRoomName_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbxRoomName.SelectedIndexChanged
    End Sub

    but when I call it with RoomRefresh() sht dont work 🙄

  16. here is your problem

            Public ReadOnly Property ChatRoomClass() As String
    Get
    If _ChatRoomClass = "" Then
    Select Case mdlPalInfo.PalMajorVer
    Case 8
    _ChatRoomClass = "My Window Class"
    Case 9
    _ChatRoomClass = "DlgGroupChat Window Class"
    Case Else
    _ChatRoomClass = "Error"
    End Select
    End If
    Return _ChatRoomClass
    End Get
    End Property

    this property is found in your mdlPalInfo and it needs to be updated for Pal 10. in fact, since pal 10 is all that works any more, we dont need to test for version and can just return the class.

     Public ReadOnly Property ChatRoomClass() As String
    Get
    Return "DlgGroupChat Window Class"
    End Get
    End Property

    Use break points and the built in debugger to step through your code to find this type of problems.

Leave a Reply

You must Register or Login to comment on An easy VB 2010 Send and Gettext Sample