先日から,CSIDL_COMMON_PROGRAMS などをいろいろとやっている.
リストされたもののアイコンを確認すると VS 2022 のものが正しくない.
それで,更に lnk から起動するコードを追加.
VS 2019 などは lnk がさす exe が起動するが,VS 2022 はうまく起動できない.
以前作成した ::ShellExecute を使用したものでテスト.
VS_2022.lnk がさす次の exe はうまく起動するが,VS_2022.lnk からは起動できない.
"C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\devenv.exe"
VS_2022.lnk を,以前やった ResolveIt で exe を求めてみることに.
すると "C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\Common7\IDE\devenv.exe" が返っている.
どうも 32 ビット exe から呼び出した場合にうまく求められない?
他の lnk で exe が 64 ビットのものの多くが,起動できない.
呼び出す側の exe を 64 ビット exe としてビルド.
これでうまくいった.
バッチファイルで32bitプロセスから64bitプロセスを起動する
[C#] 32bitプロセスから64bitプロセスで外部ファイルを起動する
64bit Windows 上で 32bit アプリケーションから 64bit アプリケーションを実行する方法