1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| using System; using System.Runtime.InteropServices; using System.Text;
namespace ConsoleApp1 { class Program { [DllImport("user32.dll")] static extern IntPtr GetDesktopWindow(); [DllImport("user32.dll")] static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); [DllImport("user32.dll")] static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam); [DllImport("user32.dll")] static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, StringBuilder lParam);
const int WM_SETTEXT = 0X000C; const int WM_GETTEXT = 0x000D;
static void Main(string[] args) { // デスクトップのウインドウハンドル取得 var hwnd = GetDesktopWindow(); // メモ帳のウインドウハンドル取得 hwnd = FindWindowEx(hwnd, IntPtr.Zero, "notepad", null); // メモ帳ウインドウ内の「Edit」ウインドウのハンドル取得 hwnd = FindWindowEx(hwnd, IntPtr.Zero, "Edit", null);
while (true) { // コンソールに入力された文字列を取得 var readText = Console.ReadLine();
if (string.IsNullOrWhiteSpace(readText)) { // 未入力の場合、終了 return; } else { // メモ帳に入力されている文字列を取得 var sb = new StringBuilder(); SendMessage(hwnd, WM_GETTEXT, 255, sb);
sb.AppendLine(readText);
// メモ帳に文字列を送信 SendMessage(hwnd, WM_SETTEXT, 0, sb.ToString()); } } } } }
|