内容的にはこちらの続きです。
続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"を見つけ出し、コンテキストメニュー(右クリック)で
"編集"で値を削除するか、または"削除"でキー自体を削除すると再起動出来ました。
レジストリを直にイジルのは、やりたくないですよね。
コマンドラインでの実行は、ホーム画面が無いためクラッシュする状態でも
処理は出来ているっぽい気がしています。