2026年7月11日土曜日

VS アプリからメモ帳起動でトラブル

ほんの少し前迄、ちゃんと動いていたのに。
突如として現れる 警告画面!。
自作のアプリから呼び出したメモ帳が ... 。
コケました。  X(


Visual Studio で作成した アプリ から メモ帳起動 でトラブル発生しています。


環境依存の様で、
同じ OS Version であっても、
正常起動するマシンとそうで無いマシンがあります。

Windows 11 Pro 25H2 Build 26200.8655
Windows メモ帳 11.2605.29.0


此処からは 私見 ですが、

確か、
メモ帳 notepad.exe は UWP App(アプリ)に変わっていて Store から配信されていた筈。
そして、通常の Desktop App は Process Start で呼び出す訳ですが、
相手が Store 等の UWP App の場合、 ひと手間 が必要だったと記憶していますが、
実際には、多くのものが、正常起動します。
無論、Windows 純正のツール類ですが。
調べて見ると、OS の アプリ実行エイリアス(App Execution Alias) で実現しているとの事。

但し、稀なケースでは、コケます。
今回、其の 稀 に遭遇した様で。

それも、実に不思議な コケ方 で、です。
notepad.exe の例では、
Process Start で 単に notepad を呼び出すと駄目で、
cmd.exe から 単に notepad を呼べば動く、 と言った具合。  ?。

因みに、C:¥¥Windows¥¥notepad とフルパスで入れれば Process Start でも OK 。
或いは、C:¥¥Windows¥¥System32¥¥notepad (上と同じもの?)。
恐らく、Code を notepad から cmd に変更し 引数を /C start notepad としても、
一瞬瞬き乍ら、Process が走る筈。

            System.Diagnostics.ProcessStartInfo psi =
                    new System.Diagnostics.ProcessStartInfo();
            psi.FileName = "C:¥¥Windows¥¥notepad.exe";
            psi.Arguments = log_file;
            psi.UseShellExecute = true;
            // Can Work
            //psi.FileName = "cmd.exe";
            //psi.Arguments =  " /C start notepad " + log_file;
            //psi.CreateNoWindow = true;
            //psi.UseShellExecute = true;

            System.Diagnostics.Process.Start(psi);  

該当マシンでは、 Search の順序が変わったのか?。
UWP 優先になっていて、コケてる と考えれば、納得なのですが ... 。

絶対位置指定なら動くのですが、
もし、将来、格納場所が変わったらとの不安が過ります。

此の様に、マシンに依って挙動が異なるのが 厭らしい処。
さて、 どうしましょうかねぇ ... 。



0 件のコメント:

コメントを投稿