現在マシン上で動作しているウェブブラウザからリストボックスのURLを取得するにはどうすればいいですか?完全な例ではないもののC#のウェブブラウザからURLを取得する
-2
A
答えて
1
は、このquestion参照そのC++のためのそれは
1
を使用して、これはIEのインスタンスのアドレスバーにテキストを取得する方法を示しています。 http://www.improve.dk/blog/2007/04/03/getting-text-from-handle
あなたが取得する前に、そのウィンドウのハンドルを取得する必要がありますテキスト。
0
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr parentHandle,
IntPtr childAfter, string className, IntPtr windowTitle);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SendMessage(IntPtr hWnd,
int msg, int wParam, StringBuilder ClassName);
private static string GetURL(IntPtr intPtr, string programName, out string url)
{
string temp=null;
if (programName.Equals("chrome"))
{
var hAddressBox = FindWindowEx(intPtr, IntPtr.Zero, "Chrome_OmniboxView", IntPtr.Zero);
var sb = new StringBuilder(256);
SendMessage(hAddressBox, 0x000D, (IntPtr)256, sb);
temp = sb.ToString();
}
if (programName.Equals("iexplore"))
{
foreach (InternetExplorer ie in new ShellWindows())
{
var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(ie.FullName);
if (fileNameWithoutExtension != null)
{
var filename = fileNameWithoutExtension.ToLower();
if (filename.Equals("iexplore"))
{
temp+=ie.LocationURL + " ";
}
}
}
}
if (programName.Equals("firefox"))
{
DdeClient dde = new DdeClient("Firefox", "WWW_GetWindowInfo");
dde.Connect();
string url1 = dde.Request("URL", int.MaxValue);
dde.Disconnect();
temp = url1.Replace("\"","").Replace("\0","");
}
url = temp;
return temp;
}
はこのコードを実行するために、次の手順を実行してください役立つこと 追加リファレンス>コム>プロジェクト内VS.NETからMicrosoft.Internet.Controls
DdeClientクラスのbinをhttp://ndde.codeplex.com/からダウンロードしてプロジェクトに追加します