teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ソースコードの追加

2018/08/29 07:46

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -74,4 +74,83 @@
74
74
  <div class="fieldValue">
75
75
  <input type="submit" name="Submit" value="ログイン" class="button" >
76
76
  </div>
77
+ ```
78
+
79
+
80
+ 現状の自身のソースコード
81
+ ```
82
+ namespace webbrowser
83
+ {
84
+ public partial class Form1 : Form
85
+ {
86
+ private const string strRegPath = @"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
87
+ private Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(strRegPath, true);
88
+ private string strProcessName = System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe";
89
+ private CookieContainer cc;
90
+ public Form1()
91
+ {
92
+ InitializeComponent();
93
+ }
94
+
95
+ private void button1_Click(object sender, EventArgs e)
96
+ {
97
+ regKey.SetValue(strProcessName, 11001, Microsoft.Win32.RegistryValueKind.DWord);
98
+ webBrowser1.ScriptErrorsSuppressed = false;
99
+
100
+ webBrowser1.Visible = true;
101
+ webBrowser1.Navigate("機器のURL");//機器にアクセス
102
+ System.Threading.Thread.Sleep(2000);//2秒待つ
103
+ SendKeys.Send("Y");//「Y」を押す(セキュリティエラーの苦肉の回避策)
104
+
105
+ while (webBrowser1.IsBusy || webBrowser1.ReadyState != WebBrowserReadyState.Complete)
106
+ {
107
+ //無処理
108
+ System.Windows.Forms.Application.DoEvents();
109
+ System.Threading.Thread.Sleep(100);
110
+ }//開くまで待つ
111
+
112
+
113
+ HtmlWindow iframe = webBrowser1.Document.Window.Frames[0];
114
+ HtmlElementCollection elements = iframe.Document.All;
115
+ HtmlElement id = elements.GetElementsByName("userName")[0];
116
+ HtmlElement pw = elements.GetElementsByName("pwd")[0];
117
+ id.InnerText = "ID";//ログインIDを入力
118
+ pw.InnerText = "password";//ログインPASSを入力
119
+
120
+ HtmlElement login = elements.GetElementsByName("Submit")[0];
121
+ login.InvokeMember("click");//ログインボタンを押す
122
+
123
+ while (webBrowser1.IsBusy || webBrowser1.ReadyState != WebBrowserReadyState.Complete)
124
+ {
125
+ System.Windows.Forms.Application.DoEvents();
126
+ System.Threading.Thread.Sleep(100);
127
+ }//開くまで待つ
128
+ System.Threading.Thread.Sleep(2000);//2秒待つ
129
+
130
+ CookieContainer cc = new CookieContainer();
131
+
132
+ cc.SetCookies(webBrowser1.Url, webBrowser1.Document.Cookie.Replace(";", ","));
133
+
134
+ HttpWebRequest req = (HttpWebRequest)WebRequest.Create("ダウンロード先URL");//Cookieをセットしてダウンロード先にアクセス
135
+ req.CookieContainer = cc;
136
+ /*下記でエラーが出る。
137
+ System.Net.WebException: '接続が切断されました: SSL/TLS のセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした。
138
+ 内部例外 AuthenticationException: 検証プロシージャによると、リモート証明書は無効です。
139
+       上記で停まってしまい、証明書をスルーするコードを記入すると何も取得出来なくなります。
140
+ */
141
+ HttpWebResponse res = (HttpWebResponse)req.GetResponse();
142
+ Stream st = res.GetResponseStream();
143
+ StreamReader sr = new StreamReader(st);
144
+
145
+ HttpWebResponse res = (HttpWebResponse)req.GetResponse();
146
+ Stream st = res.GetResponseStream();
147
+ StreamReader sr = new StreamReader(st);
148
+ String htmlSorce = sr.ReadToEnd();
149
+ Console.WriteLine(htmlSorce);
150
+ sr.Close();
151
+ st.Close();
152
+
153
+ }
154
+
155
+ }
77
156
  ```