- ふらっとVisual C#,C♯,C#(初心者用) Part111
506 :デフォルトの名無しさん[]:2014/05/26(月) 09:39:10.38 ID:C5RAjArj - Internet Explorerを自動操作していて特定の条件の際に
ie.Quit(); を実行してもブラウザが閉じない場合があります。 その際には、Internet Explorerのプロセスも生きたままです。 一体何が原因なのでしょうか? どうしても原因を突き止めることが出来ません。
|
- ふらっとVisual C#,C♯,C#(初心者用) Part111
508 :506[]:2014/05/26(月) 09:51:23.52 ID:C5RAjArj - >>507
解決につながる回答を得られなかったのでここでも質問させてもらってます。
|
- ふらっとVisual C#,C♯,C#(初心者用) Part111
509 :デフォルトの名無しさん[]:2014/05/26(月) 09:52:38.71 ID:C5RAjArj - >>507
396 名前:デフォルトの名無しさん[sage] 投稿日:2014/05/18(日) 04:22:37.98 ID:gCeF58LB アウトオブプロセスのCOMサーバプロセスのサーバの寿命が気になるなら ・途中で手に入ったCOMオブジェクトすべてにMarshal.ReleaseComObject ・COMオブジェクト入れてた変数は全部参照を切ってGC.Collect×2 のどっちかが必要 こちらですか? 見落としてました。すみません。 再度試してみます。
|
- ふらっとVisual C#,C♯,C#(初心者用) Part111
510 :506[]:2014/05/26(月) 09:57:49.91 ID:C5RAjArj - 取り敢えず、GC.Collect(); を使う方法を試したのですがIEが閉じません。。。
ie = null; の実行で参照も切れていると思っているのですが如何でしょうか? ie.Quit(); ie = null; GC.Collect() ; GC.WaitForPendingFinalizers() ; GC.Collect();
|
- ふらっとVisual C#,C♯,C#(初心者用) Part111
513 :デフォルトの名無しさん[]:2014/05/26(月) 10:31:42.35 ID:C5RAjArj - >>511
黙れ片山 >>512 >とりあえずインスタンス作ってすぐQuitす 画面遷移したり、ボタンをクリックしたりと一連のブラウジングを行った後でQuitすると 閉じない場合があります。
|
- ふらっとVisual C#,C♯,C#(初心者用) Part111
515 :コード@[]:2014/05/26(月) 11:03:16.41 ID:C5RAjArj - 以下のコードを実行すると、ブラウザが開き続けてしまいます。
ie.Quit(); をしているので本来は閉じないといけないのですが、、、 SHDocVw.InternetExplorer ie; mshtml.IHTMLElementCollection mshtml_ec; do { ie = new SHDocVw.InternetExplorer(); string url = "http://yahoo.co.jp"; ie.Navigate(url, null, null, null, null); ie.Visible = true; while (ie.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE || ie.Busy) { Application.DoEvents(); } //検索ワードを入力 mshtml_ec = ie.Document.getElementsByTagName("input"); foreach (mshtml.IHTMLElement i_ele in mshtml_ec) { if (i_ele.getAttribute("id") != null) { string chk_id = i_ele.getAttribute("id"); if (chk_id == "srchtxt") { i_ele.setAttribute("value", "まんこ汁"); break; } } }
|
- ふらっとVisual C#,C♯,C#(初心者用) Part111
516 :コードA[]:2014/05/26(月) 11:04:09.70 ID:C5RAjArj - //検索ボタンを押下
foreach (mshtml.IHTMLElement i_ele in mshtml_ec) { if (i_ele.getAttribute("value") != null) { string chk_value = i_ele.getAttribute("value"); if (chk_value == "検索") { i_ele.click(); while (ie.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE || ie.Busy) { Application.DoEvents(); } break; } } } ie.Quit(); }while(true); 全くもって原因が不明です。他の方の環境でも再現できる筈です。
|
- ふらっとVisual C#,C♯,C#(初心者用) Part111
518 :515 516[]:2014/05/26(月) 11:15:12.13 ID:C5RAjArj - >>517
まじっすか、、、どうしようもないですか?
|
- C#, C♯, C#相談室 Part83
415 :デフォルトの名無しさん[]:2014/05/26(月) 11:41:59.18 ID:C5RAjArj - C#で
Process.Kill("explorer"); ↓ Process.Start("explorer"); を実行するとエクスプローラーが起動しますが 自動でこれを閉じる方法はありませんか? ※エクスプローラを一定周期で再起動させたいです。 PCを付けっぱなしだとexplorerの調子が悪くなってしまう場合がある為です。
|
- ふらっとVisual C#,C♯,C#(初心者用) Part111
520 :515 516[]:2014/05/26(月) 14:40:56.05 ID:C5RAjArj - >>519
>>515 >>516 のコードは こーいうコードを書いて実行するとブラウザが次々と閉じずに 開き続けてしまう、という事を再現する為のコードです。 なので、ループ処理は気におして頂かなくとも結構です。
|