ClickOnceと非ClickOnceのアプリケーションを透過に起動する

以前のエントリで、ClickOnceアプリケーションを他から起動する方法を書いたが、今度は対象のパスがClickOnceか、通常のアプリケーションなのかがはっきりしない場合に、透過に起動するメソッドを考えてみた。

private void LaunchFromPath(string path)
{
    Process proccess = new Process();
    ProcessStartInfo startInfo = new ProcessStartInfo(path);
    if (Path.GetExtension(path).Equals("application", 
            StringComparison.CurrentCultureIgnoreCase))
    {
        startInfo = new ProcessStartInfo("IExplore.exe", path);
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
    }
    proccess.StartInfo = startInfo;
    proccess.Start();
}

普通に起動できるのだが、どうも気に入らない。

  • ClickOnceアプリケーション判定の拠り所を拡張子"application"にしている

登録MIMEとかで判定できないか

  • "IExplore.exe"をハードコードしている

これは前にも書いたが、エクスプローラを使わずに(当然余計なウインドウを表示させずに)起動できないものか

今回のはとりあえず叩きで使う。