■72942 / inTopicNo.2) |
Re[1]: IEのテキストボックスに値を代入して、ボタンを押すには? |
□投稿者/ マサ (4回)-(2014/08/02(Sat) 02:01:37)
|
■No72941 (マサ さん) に返信 > 現在、開いているURLは > 下記で取得出来る事が魔界の仮面氏さんからの > アドバイスで分かりました。 > > using System; > using System.Runtime.InteropServices; > using System.Text.RegularExpressions; > > namespace Sample > { > class Program > { > static void Main() > { > Regex re = new Regex("iexplore\\.exe", RegexOptions.IgnoreCase); > Guid CLSID_ShellWindows = new Guid("{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"); > > dynamic shellWindows = Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_ShellWindows)); > dynamic oMyIE = null; > > foreach (var oIE in shellWindows) > { > string fullName = null; > try { fullName = oIE.FullName; } > catch (COMException ex) > { > Console.WriteLine(ex.Message); > } > if (re.IsMatch(fullName)) { oMyIE = oIE; break; } > else { Marshal.ReleaseComObject(oIE); } > } > > if (oMyIE != null) > { > oMyIE.Navigate2("http://www.yahoo.co.jp/"); > Marshal.ReleaseComObject(oMyIE); > } > } > } > } > > この後、yahooの検索窓に"test"と入力して、 > 検索ボタンを押すにはどのようにすれば良いのでしょうか? > > webBrowserを使うと分かるのですが、 > webBrowserを使わずに開いているIEで処理するにはどのようにしたら良いのでしょうか? >
下記で解決しました。 Regex re = new Regex("iexplore\\.exe", RegexOptions.IgnoreCase);
dynamic shellWindows = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"))); dynamic oMyIE = null;
foreach (var oIE in shellWindows) { string fullName = null; try { fullName = oIE.FullName; } catch (COMException ex) { Console.WriteLine(ex.Message); } if (re.IsMatch(fullName)) { oMyIE = oIE; break; } else { Marshal.ReleaseComObject(oIE); } }
if (oMyIE != null) { //oMyIE.Navigate2("http://www.yahoo.co.jp/");
var doc = oMyIE.Document;
foreach (var inp in doc.getElementsByTagName("input")) { if (inp.name == "p") { inp.value = "test"; } }
doc = oMyIE.Document;
doc.getElementById("srchbtn").click();
} Marshal.ReleaseComObject(oMyIE);
|
解決済み
|