- This topic has 15 replies, 3 voices, and was last updated 14 years ago by autopilot.
-
AuthorPosts
-
August 23, 2010 at 1:50 am #187179jimmyngMember
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 helpthnks
August 23, 2010 at 2:31 am #187194autopilotMemberyou 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 Part5August 23, 2010 at 4:56 am #187193jimmyngMemberThank Autopilot for ur reply
do you still have these sample code with you please post & how to find pal windows too
thank in advanceAugust 23, 2010 at 11:39 am #187192autopilotMember@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.
August 26, 2010 at 10:38 pm #187191jimmyngMemberhi 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) ‘StringiLastLine = 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 iHndEnd Function
August 26, 2010 at 11:44 pm #187190ChikeMemberThe first and second bytes (in your example) sourd be 255 and 0 repectively before sending EM_GETLINE message.
August 27, 2010 at 4:13 am #187189autopilotMemberthe 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
August 27, 2010 at 6:39 am #187188jimmyngMemberHI,
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
August 27, 2010 at 6:55 am #187187jimmyngMemberGot it work!!! Thank 😆 😆
August 27, 2010 at 6:58 am #187186jimmyngMemberautopilot <<>this your
August 27, 2010 at 9:20 pm #187185autopilotMember@jimmyng wrote:
Got it work!!! Thank 😆 😆
Glad to hear it! What did you find to be the problem?
August 28, 2010 at 2:55 am #187184jimmyngMemberit 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
August 28, 2010 at 8:59 am #187183autopilotMemberWhat operating system are you using?
August 28, 2010 at 9:16 am #187182ChikeMemberBy 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.August 30, 2010 at 12:50 am #187181jimmyngMemberi 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)
-
AuthorPosts
- You must be logged in to reply to this topic.