以前のエントリで、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"をハードコードしている
これは前にも書いたが、エクスプローラを使わずに(当然余計なウインドウを表示させずに)起動できないものか
今回のはとりあえず叩きで使う。