API初心者ですが現在SENDMESSAGE関数を使用して文字を送信しています。
(本に掲載してあったサンプルをコピーして利用していますのであまり詳しく
ありません)
それで文字数が大きくなると途中で途切れているみたいです。どこかでサイズを
調整して、沢山の文字列を送ることは出来るでしょうか?以下参考までに
ソースを掲載しておきます。
Sub 送信()
Dim lngTargetWindowHandle As Long
Dim strSendDataBuffer As String
Dim lngSendDataBufferSize As Long
Dim bytSendDataBuffer() As Byte
Dim udtSendCopydata As COPYDATASTRUCT
Dim lngResult As Long
Dim a As String
lngTargetWindowHandle = hWnd0
'文字列を送信するウィンドウのハンドルが取得できたときは
If lngTargetWindowHandle <> 0 Then
' 送信する文字列を設定
strSendDataBuffer = StrConv(cmd, vbFromUnicode)
strSendDataBuffer = strSendDataBuffer
' 送信する文字列のサイズを算出
lngSendDataBufferSize = LenB(strSendDataBuffer) + 1
' COPYDATA構造体を設定
udtSendCopydata.dwData = 1
' バッファのサイズ
udtSendCopydata.cbData = lngSendDataBufferSize
' バッファの先頭アドレス
udtSendCopydata.lpData = StrPtr(strSendDataBuffer)
' WM_COPYDATAメッセージを送信
lngResult = SendMessage(lngTargetWindowHandle, WM_COPYDATA, _
Form1.hwnd, udtSendCopydata)
End If
End Sub
以上ソースが汚いかもしれませんが宜しくお願いします。
受け取りがわのアプリに問題があったようです。質問を一度キャンセルします。
ツイート | ![]() |