APISENDMESSAGEでの文字の送信サイズは

解決


sinada  2006-05-05 01:26:22  No: 131269

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

以上ソースが汚いかもしれませんが宜しくお願いします。


sinada  2006-05-05 04:18:32  No: 131270

受け取りがわのアプリに問題があったようです。質問を一度キャンセルします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加