0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ショートカットファイルを実行したい

Posted at

ショートカットファイルを実行したい

windows11でクイックランチが使えなくなったのでクイックランチもどきを作ろうかとショートカットを実行するアプリを作る事にしました。

ショートカットファイルからアプリを実行する

ちょっと雑なコードですが、ざっくり解説します。
UseShellExecuteをtrueに設定することにより、オペレーティングシステムのシェルにより、指定されたリンクが適切なアプリケーションで開かれることになります(たとえば、URLであれば、既定のウェブブラウザで開かれます)
通常であれば、ExecuteLink(@"X:\path\to\shortcut.lnk")でリンクを開けます。

void ExecuteLink(string Link) {
    var P = new Process();
    P.StartInfo.FileName = Link;
    P.StartInfo.UseShellExecute = true;
    P.Start();
}

何故かファイルが見つからない

上記コードを実行しても、「ファイルが見つからない」というエラーに場合がある。
ショートカットファイルのパスが誤っているわけでも、ショートカット先のアプリが削除されているわけでもない。
その場合に試して欲しいのは、コンパイルオプションです。
私もこんな罠があると思ってなかったです。

結論

32ビットを選ぶ(VisualStudio 2019の場合)のチェックを外す
※新しい(?)バージョンの場合は、「32ビットを優先」の場合があるかもです。

CompileOptionSS.png

フォールバック的な動作を期待していましたがどうやらそういう訳ではないのでしょう。
32ビットに拘っているわけではないプロジェクトなので、一旦チェックを外してするめる事にしました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?