前提・実現したいこと
c#でwindowsAPIのSetCursorPos関数、SendInput関数を利用して、外部アプリケーションへのクリック操作を行うアプリを作成しています。
困っていること
画面上の任意の点をクリックするメソッドはでき、電卓やchrome等は作成したアプリから操作できているのですが、
BlueStacksというアプリだけマウスのクリックを受け付けずまたその解決方法が分からず困っています。
実際のマウスでのクリックには反応しており、なぜAPIからのクリックに反応しないのか分かりません。
解決等分かる方いましたら、ご教授宜しくお願い致します。
該当のソースコード
c#
1 [DllImport("user32.dll")] 2 extern static uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize); 3 4 [StructLayout(LayoutKind.Sequential)] 5 struct INPUT 6 { 7 public int type; 8 public MOUSEINPUT mi; 9 } 10 11 [StructLayout(LayoutKind.Sequential)] 12 struct MOUSEINPUT 13 { 14 public int dx; 15 public int dy; 16 public int mouseData; 17 public int dwFlags; 18 public int time; 19 public IntPtr dwExtraInfo; 20 } 21 22 const int MOUSEEVENTF_LEFTDOWN = 0x0002; // 左ボタン Down 23 const int MOUSEEVENTF_LEFTUP = 0x0004; // 左ボタン Up 24 25 [DllImport("USER32.dll", CallingConvention = CallingConvention.StdCall)] 26 static extern void SetCursorPos(int X, int Y); 27 28 public void ClickMouse(int x, int y) 29 { 30 // マウスを移動する 31 SetCursorPos(x, y); 32 33 // クリックする 34 INPUT[] input = new INPUT[2]; 35 input[0].mi.dwFlags = MOUSEEVENTF_LEFTDOWN; 36 input[1].mi.dwFlags = MOUSEEVENTF_LEFTUP; 37 SendInput(2, input, Marshal.SizeOf(input[0])); 38 } 39 40
補足情報(FW/ツールのバージョンなど)
実行環境
windows7 Home Premium 64bit
CPU core i5, メモリ 8GB
開発環境
Visual Studio2017
.NET Framework 4.5.2

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。