お世話になりっぱなしですみません。。。
C#でブラウザを開き、スクリーンショットをとり、開いたブラウザを閉じるという事をさせようとしています。
Process.Start("http://www.atmarkit.co.jp/fdotnet/");
この一文でブラウザを開き、スクリーンショットをとるところまでは出来たのですが、
閉じ方がわかりません。
どうやって閉じたらいいのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
Processインスタンスは、Startしてからすぐは終了準備ができきっていないことがあるので、StratからCloseMainWindow()までの時間があまりにも短いと、そういったエラーも起き得ます。
試しにちょっと時間を置くような処理を間に入れてみたらどうでしょう
投稿2015/10/02 09:16
総合スコア87
0
ベストアンサー
こんにちは。
私もsho_csさんが仰っているとおりCloseMainWindowで済むかなと思ってましたが、
同じようにNullReferenceExceptionが発生しました。
Process.Start時にProcessインスタンスが取得できていないようです。
そこで以下のように実行ファイルを指定(※Shell経由だが)して実行するように変更したところプロセスの取得は出来ました。
C#
1Process ps = Process.Start(new ProcessStartInfo() 2{ 3 FileName = "IExplore.exe", 4 Arguments = "http://www.atmarkit.co.jp/fdotnet/", 5});
ただし、既に存在するプロセスと共有されてしまうようでCloseMainWindow実行時に例外になりました。
最終的には以下のようにしました。
C#
1Process ps = Process.Start(new ProcessStartInfo() 2 { 3 FileName = "IExplore.exe", 4 Arguments = "-nomerge http://www.atmarkit.co.jp/fdotnet/", 5 }); 6 7//何か処理とか。 8 9ps.CloseMainWindow();
引数のnomerge オプションがポイントです。
投稿2015/10/02 08:51
総合スコア4791
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/02 09:07
2015/10/02 09:09
2015/10/02 09:10
2015/10/02 09:12
0
検索すればすぐに出てきますよ。
Process.Close メソッド (System.Diagnostics)
投稿2015/10/02 08:24
総合スコア3541
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/02 08:40
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/02 09:18