Public Class Form1 Public Structure COPYDATASTRUCT Public dwData As Integer Public cbData As Integer Public lpData As String End Structure ------------------------------------------------------------------------------ Public Const THW_ENTER = &H10000 ' データ送信後、ENTERキーを押したのと同じ Public Const THW_FOCUS = &H20000 ' データ送信後、編集ボックスにフォーカス Public Const THW_SAVEBOX_ON = &H40000 ' データ保存時、確認MessageBox表示あり Public Const THW_SAVEBOX_OFF = &H80000 ' データ保存時、確認MessageBox表示なし Public Const THW_APPLIHWND = &H100000 ' メインウインドウのハンドルを返す Public Const WM_COPYDATA As Integer = &H4A Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal cName As String, ByVal wName As Integer) As Integer Public Declare Auto Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Integer, ByVal wMsg As Integer, ByRef wParam As Integer, _ ByRef lParam As COPYDATASTRUCT) As Integer Public Declare Function SetForegroundWindow Lib "user32" (ByVal wnd As Integer) As Integer
ここまでがうまくいかない部分です ================================================================================ Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim cmmd As Integer Dim Hwnd1 As Integer, Hwnd2 As Integer Dim cds As New COPYDATASTRUCT Dim cbuff As String Dim WorkLeng, Scunt, Wcunt As Integer
If Me.RadioButton1.Checked = True Then cmmd = 1 End If If Me.RadioButton2.Checked = True Then cmmd = 2 End If If Me.RadioButton3.Checked = True Then cmmd = 3 End If If Me.RadioButton4.Checked = True Then cmmd = 4 End If If Me.RadioButton5.Checked = True Then cmmd = 5 End If If Me.RadioButton6.Checked = True Then cmmd = 6 End If If Me.RadioButton7.Checked = True Then cmmd = 7 End If If Me.RadioButton8.Checked = True Then cmmd = 8 End If If Me.RadioButton9.Checked = True Then cmmd = 9 End If If Me.RadioButton10.Checked = True Then cmmd = 10 End If If Me.RadioButton11.Checked = True Then cmmd = 11 End If If Me.RadioButton12.Checked = True Then cmmd = 12 End If If Me.RadioButton13.Checked = True Then cmmd = 13 End If If Me.RadioButton14.Checked = True Then cmmd = 14 End If If Me.RadioButton15.Checked = True Then cmmd = 15 End If If Me.RadioButton16.Checked = True Then cmmd = 16 End If
If cmmd < 16 Then If Me.TextBox1.Text = "" Then MessageBox.Show("登録データが入力されていません。", "入力データ確認", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End If End If
Hwnd1 = FindWindow("TThwin", 0)
If Hwnd1 < 1 Then ' ハムログが起動していない Me.TextBox1.Text = "HAMLOGが起動していません" Exit Sub End If
cbuff = TextBox1.Text
WorkLeng = Len(cbuff)
Scunt = 0 Wcunt = 0 For ch As Integer = 0 To WorkLeng - 1 If Asc(cbuff.Substring(ch, 1)) >= 0 And Asc(cbuff.Substring(ch, 1)) < 256 Then Scunt = Scunt + 1 Else Wcunt = Wcunt + 1 End If Next
If cmmd <= 15 Then cds.cbData = Scunt + (Wcunt * 2) End If
cmmd = cmmd Or THW_FOCUS cmmd = cmmd Or THW_ENTER cds.dwData = cmmd cds.lpData = (cbuff)
If Hwnd2 > 0 Then SetForegroundWindow(Hwnd2) If Me.CheckBox1.Checked = True Then cmmd = 18 cmmd = cmmd Or THW_SAVEBOX_ON cds.dwData = cmmd SendMessage(Hwnd1, WM_COPYDATA, Me.Handle, cds) End If If Me.CheckBox2.Checked = True Then cmmd = 18 cmmd = cmmd Or THW_SAVEBOX_OFF cds.dwData = cmmd SendMessage(Hwnd1, WM_COPYDATA, Me.Handle, cds) End If End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click