メモ帳を起動して、PostMessageで文字列を表示
- 題名: メモ帳を起動して、PostMessageで文字列を表示
- 著者: beni
- 日時: 2008/01/25 0:38:09
- ID: 21332
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: ぽん
- 日時: 2008/01/25 6:26:10
- ID: 21336
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: beni
- 日時: 2008/01/25 7:19:03
- ID: 21337
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: Hongliang
- 日時: 2008/01/25 10:01:53
- ID: 21338
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: beni
- 日時: 2008/01/25 11:24:46
- ID: 21340
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: Hongliang
- 日時: 2008/01/25 12:55:32
- ID: 21341
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: beni
- 日時: 2008/01/25 14:11:02
- ID: 21342
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: 引っ込んだ(略)
- 日時: 2008/01/26 14:04:34
- ID: 21347
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[8]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: beni
- 日時: 2008/01/26 19:45:42
- ID: 21349
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[9]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: Hongliang
- 日時: 2008/01/26 21:58:55
- ID: 21350
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[10]: メモ帳を起動して、PostMessageで文字列を表示
- 著者: beni
- 日時: 2008/01/27 14:30:43
- ID: 21351
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつも参考にさせていただいております。
私の検索方法が悪い為、過去レスを見つけられず、質問させていただきました。
VB.NET2005で作成したアプリから、メモ帳を起動して、文字列を表示させたくて、NETを検索して、下記のソースを作成しましたが、下記のソースですと、エラーも返らず、文字も表示されません><
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function PostMessage( _
ByVal hWnd As IntPtr, _
ByVal Msg As UInteger, _
ByVal wParam As IntPtr, _
ByVal lParam As IntPtr) As Boolean
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _
ByVal childAfter As IntPtr, _
ByVal lclassName As String, _
ByVal windowTitle As String) As IntPtr
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindow( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As IntPtr
End Function
Const WM_CHAR = &H102
Privete Sub SetNotepad()
Dim lpszParentClass As String = "Notepad"
Dim lpszParentWindow As String = "無題 - メモ帳"
Dim lpszClass As String = "Edit"
Dim ParenthWnd As New IntPtr(0)
Dim hWnd As New IntPtr(0)
Dim procID As Integer
Dim newProc As Diagnostics.Process
newProc = Diagnostics.Process.Start("Notepad.exe")
procID = newProc.Id
ParenthWnd = FindWindow(lpszParentClass, lpszParentWindow)
If ParenthWnd.Equals(IntPtr.Zero) Then
Debug.WriteLine("メモ帳を起動してください!")
Else
hWnd = FindWindowEx(ParenthWnd, hWnd, lpszClass, "")
If hWnd.Equals(IntPtr.Zero) Then
Debug.WriteLine("メモ帳を起動してください!")
Else
Debug.WriteLine("Notepad Window: " & ParenthWnd.ToString())
Debug.WriteLine("Edit Control: " & hWnd.ToString())
End If
End If
Dim strMY As String = "123"
For intI As Integer = 1 To Len(strMY)
PostMessage(hWnd, WM_CHAR, Mid(strMY, intI, 1), 0)
Next
End Sub
2日程考えたのですが、解決方法が思い浮かばず悩んでおります。
ご教授いただけると嬉しいです。