状況及び実現したいこと
ローカルアプリから以下のソースで、ローカルにあるHTMLファイルを既定のアプリで設定したブラウザから表示させることはできますが、クエリパラメータで指定したページが表示されず、トップページが表示されます。
クエリパラメータで指定したページを、既定のアプリで設定したブラウザに表示させたいです。
ちなみにIEでは専用のクラスがあり、そのメソッドからクエリパラメータで指定したページを表示できます。
MainWindow.xaml.cs
//ローカルのHTMLファイルからクエリパラメータで指定したページを、既定のアプリで指定したブラウザから表示させる処理 //ProcessStartInfoオブジェクトを作成する System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); //起動するファイルのパスを指定する psi.FileName = "file:/c:/temp/doc.html?ページid"; //アプリケーションを起動する System.Diagnostics.Process.Start(psi);
doc.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset=”utf-8″> <title>クエリパラメータが無視される</title> </head> <body> <h1>検証環境</h1> <p> <a href="file:///c:/temp/doc.html?ページid">リンク</a> </p> </body> </html>
上記ソースコードで、既定のアプリで指定したブラウザからローカルにあるHTMLファイルを表示させますが、クエリパラメータ(?)以降の文字列が無視され、表示させたいページが表示されません。結果表示されるのは先頭ページになります。
試したこと
1つ目
psi.FileNameではなくpsi.Argumentsにパスを指定する
2つ目
Uriクラスにパスを設定し、このUriクラスからProcess.Startまたは、ProcessStartInfoにパスを渡す
ご質問は以上です。
業務アプリで自宅に開発環境がないため、検証できませんが、ご回答のほどよろしくお願いいたします。
追記
操作誤りで同じ質問を何度もしてしまいました。
こちらで回答受付いたします。
申し訳ございません。
回答2件
あなたの回答
tips
プレビュー