2021/12/08(Wed) 04:23:36 編集(投稿者)
■No98623 (Tom さん) に返信
くまさんの回答にありますように、2回 Hide したら 2回 Show すれば出てきます。
あと、mouse_event のところですが
const int WM_LBUTTONDOWN = 0x0201;
const int WM_LBUTTONUP = 0x0202;
[DllImport("user32.dll")]
static extern IntPtr WindowFromPoint(Point p);
[DllImport("user32.dll")]
static extern IntPtr ChildWindowFromPoint(IntPtr hwndParent, Point p);
[DllImport("user32.dll")]
static extern bool ScreenToClient(IntPtr hWnd, ref Point lpPoint);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
static extern bool PostMessage(IntPtr hWnd, int uMsg, IntPtr wParam, IntPtr lParam);
private IntPtr MakeLParam(int LoWord, int HiWord)
{
return new IntPtr((int)((HiWord << 16) | (LoWord & 0xFFFF)));
}
Point p = new Point(New_xPos, New_yPos);
IntPtr hwndParent = WindowFromPoint(p);
Point cp = new Point(New_xPos - WindowRect.Left, New_yPos - WindowRect.Top);
IntPtr hwnd = ChildWindowFromPoint(hwndParent, cp);
ScreenToClient(hwnd, ref p);
IntPtr lp = MakeLParam(p.X, p.Y);
PostMessage(hwnd, WM_LBUTTONDOWN, IntPtr.Zero, lp);
PostMessage(hwnd, WM_LBUTTONUP, IntPtr.Zero, lp);
こんな感じでメッセージを送るといいと思います。
でもたいていの自動化ツールってマウスを表示したまま動かしているような気がしますね。