0

IE オブジェクトがバックグラウンド ウィンドウであっても、InternetExplorer オブジェクトのマウスの左クリックをシミュレートしようとしています。私が使用しているシステム関数は SendMessage です。以下は関連するコードです。

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

InternetExplorer IE = new InternetExplorer();
IntPtr handle = (IntPtr) IE.HWND;

int x = 50;
int y = 50;
IntPtr lParam = (IntPtr)((y << 16) | x); // X and Y coordinates of the click
IntPtr wParam = IntPtr.Zero;

const uint downCode = 0x0201; 
const uint upCode = 0x202;
SendMessage(handle, downCode, wParam, lParam); // mousedown
SendMessage(handle, upCode, wParam, lParam); // mouseup

左クリックすると、指定した位置で新しい IE ウィンドウが生成されることは確かです。ただし、上記のコードを使用すると、それは起こりません。それで、私はここで何が欠けていますか?

update
OSはWindows 7 Professionalです。IDE は Visual Studio 2013 Pro です。

また、マニフェストを追加して、このページごとに UIAccess="true" を指定してみました。しかし、うまくいきませんでした。

4

1 に答える 1