我需要向Internet Explorer窗口发送消息,我想登录到我的Gmail帐户。问题是ie在WM_SETTEXT事件中没有反应。
这是一个片段
IntPtr hWndIe = NativeMethods.FindWindow("IEFrame", null);
IntPtr hWndtab = NativeMethods.FindWindowEx(hWndIe, IntPtr.Zero, "Frame Tab", null);
IntPtr hWndtabw = NativeMethods.FindWindowEx(hWndtab, IntPtr.Zero, "TabWindowClass", null);
IntPtr hWndshell = NativeMethods.FindWindowEx(hWndtabw, IntPtr.Zero, "Shell DocObject View", null);
IntPtr hWndEdit = NativeMethods.FindWindowEx(hWndshell, IntPtr.Zero, "Internet Explorer_Server", null);
NativeMethods.PostMessage(hWndEdit, WM_KEYDOWN, Keys.Tab, IntPtr.Zero);
NativeMethods.SendMessage(hWndEdit, WM_SETTEXT, 0, "xxx@gmail.com");
同时
NativeMethods.PostMessage(hWndEdit, WM_KEYDOWN, Keys.B, IntPtr.Zero);
工作正常。
任何帮助都将不胜感激。
UPD:这是SendMessage user32dll on an internet explorer page一个类似的问题。解决方案是找到另一种方法。