画像ファイル
画像ファイル プロセス間通信(SendMessage)
Page1 Page2
SendMessageによるプロセス間通信(送信側)

VB.NETのコード
Imports System.Runtime.InteropServices

Public Class FomSendMessage
'COPYDATASTRUCT構造体
Public Structure COPYDATASTRUCT
Public dwData As Int32 '送信するビット値
Public cbData As Int32 'lpDataのバイト数
Public lpData As String '送信するデータへのポインタ(0も可能)
End Structure

Public Const WM_COPYDATA As Int32 = &H4A
Public Const WM_USER As Int32 = &H400

"user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindow( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As IntPtr
End Function

"user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SendMessage( _
ByVal hWnd As IntPtr, _
ByVal wMsg As Int32, _
ByVal wParam As Int32, _
ByVal lParam As Int32) As Integer
End Function

"user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SendMessage( _
ByVal hWnd As IntPtr, _
ByVal wMsg As Int32, _
ByVal wParam As Int32, _
ByRef lParam As COPYDATASTRUCT) As Integer
End Function

'送信ボタン押下
Private Sub butSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butSend.Click
Dim result As Int32 = 0

'相手のウィンドウハンドルを取得します
Dim hWnd As Int32 = FindWindow(Nothing, txtName.Text)
If hWnd = 0 Then
'ハンドルが取得できなかった
MessageBox.Show("相手Windowのハンドルが取得できません")
Return
End If


'文字列メッセージを送信します
If txtMessage.Text <> String.Empty Then
'送信データをByte配列に格納
Dim bytearry() As Byte = System.Text.Encoding.Default.GetBytes(txtMessage.Text)
Dim len As Int32 = bytearry.Length
Dim cds As COPYDATASTRUCT
cds.dwData = 0 '使用しない
cds.lpData = txtMessage.Text 'テキストのポインターをセット
cds.cbData = len + 1 '長さをセット
'文字列を送る
result = SendMessage(hWnd, WM_COPYDATA, 0, cds)
End If

'数値メッセージを送信します
If txtInt1.Text <> String.Empty And txtInt2.Text <> String.Empty Then
Dim int1 As Int32 = 0
Dim int2 As Int32 = 0
Try
'数値に正しく変換出来るか?
int1 = CType(txtInt1.Text, Int32)
int2 = CType(txtInt2.Text, Int32)
Catch
MessageBox.Show("入力された数値が正しく有りません")
Return
End Try
'数値を送る
result = SendMessage(hWnd, WM_USER, int1, int2)
End If
End Sub
End Class
画像ファイル