C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: IEのテキストボックスに値を代入して、ボタンを押すには?


(過去ログ 122 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■72941 / inTopicNo.1)  IEのテキストボックスに値を代入して、ボタンを押すには?
  
□投稿者/ マサ (3回)-(2014/08/02(Sat) 01:19:31)

分類:[C#] 

現在、開いている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で処理するにはどのようにしたら良いのでしょうか?


引用返信 編集キー/
■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);




解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -