トップページ > プログラム > 2014年05月26日 > C5RAjArj

書き込み順位&時間帯一覧

4 位/191 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000041400100000000010



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
506
コード@
コードA
515 516
515 516
ふらっとVisual C#,C♯,C#(初心者用) Part111
C#, C♯, C#相談室 Part83

書き込みレス一覧

ふらっと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 のコードは
こーいうコードを書いて実行するとブラウザが次々と閉じずに
開き続けてしまう、という事を再現する為のコードです。

なので、ループ処理は気におして頂かなくとも結構です。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。