Windows.Forms.Formからブラウザを起動する BearCatのモバイルと音楽のある生活

Windows.Forms.Formからブラウザを起動するのページです。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--年--月--日 トラックバック(-) コメント(-)

Windows.Forms.Formからブラウザを起動する

Windows.Forms.Formからブラウザを起動する方法を調査。
LinkLabelをクリックしたらブラウザを起動するようにしたいところです。
MSのサポート情報に『HOW TO:ビジュアルC#.NETでの Windows フォームで LinkLabel コントロールを使用したら、既定の Web ブラウザを起動します』と、よくわからないタイトルの情報が。自動翻訳なので、変な日本語だったのね。

で、肝心のコード。using ディレクティブ「using System.Diagnostics;」を宣言しておいて、LinkLabelのClickイベントに以下のコードを記述するだけのようです。
ProcessStartInfo sInfo = new ProcessStartInfo(e.Link.LinkData.ToString());
Process.Start(sInfo);

なんだ、簡単じゃん。...って、これ別にブラウザを起動するコードじゃないよね。
LinkDataにURLが入っているからブラウザが起動するだけ。処理としてはExplorerのファイルをダブルクリックしたときと同じ動作で、たとえばLinkDataにnotepad.exeを指定するとメモ帳が立ち上がります。
ここで二つの対応が考えられます。
(1) URL入力時に、URLとして無効な形式のものは受け付けない
(2) URL以外にファイル名を入力しても良いものとする
ここでは2番目の対応とします。その方が使いやすいし、対応も楽なので(^^;

しかしまだ問題があります。URLのところに存在しないファイル名を指定するとエラーが発生します。
以下のようなメソッドにして対応完了とします。

/// <summary>
/// ファイル名やURLからプロセスを起動する
/// </summary>
/// <param name="proc">ファイル名・URL等</param>
/// <returns>ture:起動成功  false:起動失敗</returns>
internal static bool openProcess(string proc)
{
    if (proc == null || proc.Trim().Length == 0)
    {
        return false;
    }
    try
    {
        ProcessStartInfo sInfo = new ProcessStartInfo(proc);
        Process.Start(sInfo);
    }
    catch
    {
        return false;
    }
    return true;
}

スポンサーサイト

2007年07月22日 トラックバック(0) コメント(0)












管理者にだけ公開する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。