|
■No68291 (魔界の仮面弁士 さん) に返信
> ■No68290 (JJJ さん) に返信
>>今回Formを使用しない方法を探しています。
>
> IE 限定で良ければ、Navigate メソッド経由で。
魔界の仮面弁士様
大変遅くなりましたが、ありがとうございます。
以下で実装できました。
"@"での認証を使いましたので、レジストリの操作が必要になりました。
//レジストリ操作=userID+pass+"@"URLを有効にする
RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE", true);
regkey.SetValue(@"iexplore.exe", 0);
regkey.Close();
//IE表示(basic認証あり)
string user = "guest";
string pass = "password";
string URL = "https://" + guest + ":" + pass + "@" +htaccess.cman.jp/sample/basic/";
object m = Type.Missing;
shdocvw.InternetExplorer ie = new shdocvw.InternetExplorer();
ie.Navigate(URL, ref m, ref m, ref m, ref m);
ie.Visible = true;
//レジストリ操作
RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE", true);
regkey.SetValue(@"iexplore.exe", 1);
regkey.Close();
ただ、既にIEが立ち上がっている場合にこの処理を実行すると
空白画面が立ち上がってしまいます。
catchするとHRESULT からの例外: 0x800C000Eとなっていまして、原因がわかりません。
この場合の対処方法を探していますが、見つからない状態です。
遅くなってしまい恐縮ですが、お知恵を拝借出来れば幸いです。
|