Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // https://teratail.com/questions/115871
- using System;
- using System.Diagnostics;
- using System.Linq;
- using System.Runtime.InteropServices;
- namespace ConsoleApp1
- {
- class Program
- {
- [DllImport("user32.dll")]
- static extern IntPtr PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
- [DllImport("user32.dll")]
- static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
- // 送信するメッセージ
- const uint WM_KEYDOWN = 0x100;
- const uint WM_LBUTTONDOWN = 0x0201;
- const uint WM_LBUTTONUP = 0x0202;
- const uint None = 0;
- const uint MK_LBUTTON = 0x0001;
- /// <summary>
- /// メモ帳にaと入力する
- /// </summary>
- static void Test1()
- {
- // https://www.papy.in/bbs/vc/200609/06090004.html
- var hwnd = Process.GetProcessesByName("notepad").First().MainWindowHandle;
- hwnd = FindWindowEx(hwnd, IntPtr.Zero, "Edit", null);
- // aと入力
- PostMessage(hwnd, WM_KEYDOWN, (IntPtr)0x41, IntPtr.Zero);
- }
- /// <summary>
- /// ペイントでクリックする
- /// </summary>
- static void Test2()
- {
- // https://social.msdn.microsoft.com/Forums/ja-JP/90258227-a820-4de3-ae71-4bbf88076dd2/wpfc?forum=wpfja
- var hwnd = Process.GetProcessesByName("mspaint").First().MainWindowHandle;
- hwnd = FindWindowEx(hwnd, IntPtr.Zero, "MSPaintView", null);
- hwnd = FindWindowEx(hwnd, IntPtr.Zero, null, null);
- UInt16 x = 300;
- UInt16 y = 300;
- UInt32 pos = ((UInt32)y << 16) | (UInt32)x;
- // クリックする
- PostMessage(hwnd, (uint)WM_LBUTTONDOWN, new IntPtr((int)MK_LBUTTON), new IntPtr(pos));
- PostMessage(hwnd, (uint)WM_LBUTTONUP, new IntPtr((int)None), new IntPtr(pos));
- }
- static void Main(string[] args)
- {
- Test1();
- Test2();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement