C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

mayo起動しなくなる・・・(復旧方法あり)

内容的にはこちらの続きです。
続mayo - C#ATIA

ここの最後付近に"スペースの含まれている名前はNGですね。"と
書きましたがスペース文字は大丈夫でした。スイマセン。

スペース文字が問題となるのは、コマンドラインでの実行時です。
コマンドライン実行時にスペース文字が入っていると、最初のスペースまでが
コマンドで、それ以降をパラメータと解釈する仕様が原因の様です。
これはファイル名のみならず、ファイルパスにもスペースが含まれていると
NGの為、ダブルクォーテーションで囲む等の必要があるようです。


で、表題の起動しなくなった原因ですが、2バイト文字(全角文字)でした。
2バイト文字を含むファイル名はNGです。・・・結構有りがちです。
ファイル名にのみ含まれる場合は、読み込み時の変換に失敗するだけです。
読み込みに失敗しmayoを終了しても、再度起動する際には起動できます。
ファイル名に2バイト文字が含まれるパターンとしては、こんな感じです。

C:\temp\ホゲ.stp

問題は、ファイルパスに2バイト文字が含まれる場合です。
こんな感じです。

C:\temp\ほげ\hoge.stp

この場合、読み込みに失敗する上に再起動時にクラッシュして起動しません。
再インストールしても起動してくれませんでした。


探した所、こちらのissuesに同様の事例が記載されていました。
(ver0.6.0で記載されていますがver0.7.0でも発生しています)
An error occurred when starting the program · Issue #177 · fougue/mayo · GitHub

mayoの起動時(ホーム画面)に過去に起動した履歴が表示されるのですが
こちらが原因の様です。
ここで2バイト文字のファイルパスが含まれるとクラッシュし起動
出来ないようです。

取りあえずの対策としては、この履歴がレジストリに記載されているので
そのレジストリを削除することで、再度起動できるようになるようです。
・・・かなり暴力的ですw

まず"regedit"でレジストリエディターを起動。
以下の探し出す。

コンピューター\HKEY_CURRENT_USER\SOFTWARE\Fougue Ltd\Mayo\application

その中の"lastOpenFolder"を見つけ出し、コンテキストメニュー(右クリック)で
"編集"で値を削除するか、または"削除"でキー自体を削除すると再起動出来ました。
レジストリを直にイジルのは、やりたくないですよね。

コマンドラインでの実行は、ホーム画面が無いためクラッシュする状態でも
処理は出来ているっぽい気がしています。