Не отправляется сообщение окну SendMessage (winApi) - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Господа, выручайте. Имеется два приложения, из одного приложения в другое нужно передавать данные(строку) через winApi. У отправителя пишу что-то такое:
Листинг программы
  1. Const WM_COPYDATA As Integer = &H4A
  2. <DllImport("user32.dll")> _
  3. Public Shared Function FindWindow(lpClassName As String, lpWindowName As String) As Integer
  4. End Function
  5. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
  6. Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
  7. End Function
  8. Private Shared Sub SendHWND(hw As Integer, Name As String)
  9. Dim ptr As IntPtr = Marshal.StringToHGlobalAnsi("test")
  10. SendMessage(hw, WM_COPYDATA, IntPtr.Zero, ptr)
  11. End Sub
  12. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  13. Dim handle As IntPtr = FindWindow(Nothing, "CDPReceiver")
  14. Debug.Print(handle)
  15. If handle <> IntPtr.Zero Then
  16. SendHWND(handle, "hello")
  17. End If
  18. End Sub
на принимающей стороне:
Листинг программы
  1. Const WM_COPYDATA As Integer = &H4A
  2. Protected Overrides Sub WndProc(ByRef m As Message)
  3. Select Case m.Msg
  4. Case WM_COPYDATA
  5. MessageBox.Show("Hey!")
  6. End Select
  7. MyBase.WndProc(m)
  8. End Sub
Никогда не попадает в необходимое условие select-case. Почему? На c# примерно такой код отлично работает, на vb нет. Благодарен за любую помощь.

Решение задачи: «Не отправляется сообщение окну SendMessage (winApi)»

textual
Листинг программы
  1. Public Class Form1
  2.     Const WM_COPYDATA As Integer = &H4A
  3.     Const WM_NULL As Integer = 0
  4.     Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
  5.         If CInt(m.Msg) = WM_Null Then
  6.             MsgBox(m.Msg)
  7.         End If
  8.         MyBase.WndProc(m)
  9.     End Sub
  10.  
  11. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.545 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы