【不具合】X-Finderからの起動で相対パスが取得されない

  1. ●ファイラーソフト X-Finderでの不具合
    個人的に配布したマクロが動かなくなったと報告を受けその環境を再現したところ、不具合と思われる現象を確認しました。
    私自身が使用していないソフト絡みでしっかりした検証が出来てないのですが、他の方に投げた方が早いと判断した為報告しておきます。
    解る方確認お願いします。
    win 7
    Bild: 2.1.5.4624

    ポータブル化して運用する事を前提として両ソフトの設定をします。

    [X-Finder 設定]
    ツール(T)→関連付け(A)→右クリック→ファイルの作成(S)
    出てくるダイアローグに以下を設定
    (以下は同一フォルダ内にMeryとX-Finderの両フォルダを置いた設定です。)

    パス(P)
    %x-finder%..\Mery\Mery.exe
    拡張(E)
    *.txt
    動作(A)
    パスにフォーカス項目を渡して実行(2)

    パスの所は相対パスで正しく設定出来ればアイコンの場所にMeryアイコンが現れるはずです。
    動作の所は、多分これで良いはずなんです……がココが良く分からないです。

    [Mery2 設定]
    外部ツールの設定を相対パスで記述(アイコンも)
    外部ツールバーを表示しておく。
    相対パスを使うマクロを用意する。
    例:検証用.js
    /*** ReadMeを開きます ***/
    var n = ".\\Mery.txt"
    editor.OpenFile(n,0,meOpenAllowNewWindow);

    この組み合わせで X-Finder 上のテキストファイルをダブルクリックすると Mery2 を呼び出しファイルを開くのですが、その後マクロなどでは相対パスが取得出来ない等不具合が出ます。

    具体的には
    ・同じマクロを使用していてもver.1で開けるファイルが、ver2では開けない。
    ・外部ツールバーのアイコンが消える。
    ・外部ツールへ選択テキストなどの引数が送れない。
    (もしかして通常起動でも送れてないかも? 報告上がってます?
    保存してない無題のタブからは送れるのに、保存しているファイルからは送れていないみたいです。)

    そもそもX-Finderの設定が悪いだけかもしれませんので、どなたかX-Finder使いの方確認お願いします。

     |  玄米茶  |  返信
  2. こんばんは。

    私も x-finder は使ったことがなくて、インストールしてみたのですが x-finder 自体がうまく動かなくてまだ検証できておりませんが、、、

    > ・同じマクロを使用していてもver.1で開けるファイルが、ver2では開けない。

    Mery1 では起動後のカレントディレクトリを強制的に Mery.exe のパスに変更していましたが、Mery2 では起動後もカレントディレクトリを変更しません。

    例えばコマンドプロンプトから起動した場合などに、

    C:\Program Files>.\Mery\Mery.exe a.txt

    のように指定したとき、Program Files 直下の a.txt を開けるようにするためです。

    なので、マクロから開いたときもカレントディレクトリは「x-finder」側のカレントディレクトリになってるのかもしれません。x-finder 側で作業ディレクトリなどを指定できるのかもしれませんが、未確認です。

    > ・外部ツールへ選択テキストなどの引数が送れない。
    > (もしかして通常起動でも送れてないかも? 報告上がってます?

    通常起動では選択テキストがわたることを確認しました。

    やはり Mery 起動時のパス「%x-finder%..\Mery\Mery.exe」がちょっと気になる部分ではありますね。

    その他の点に関しては x-finder を動かしてからではないと試せそうにありませんので、後日、動作できる環境を作って試してみたいと思います。

    あまり調査できてませんが、とりあえずご報告まで。

     |  Kuro  |  返信
  3. 起動動作の違いはコマンドライン操作の機能強化をした結果だったのですね。納得しました。
    X-Finderが細かいところまで弄れるみたいなので何とかなりそうなのですが正直よく解りません。
    X-Finderユーザー待ちですかね。

    通常起動で引数が送れない件ですが、外部ツールの設定で作業フォルダに$(Dir)を設定してました。
    空欄にしたら送れました。色々変更しててその時勘違いしたみたいです。すみません。

    実は今回の件、エイプリルフールネタでMeryが新しくなった事を知った方からのヘルプ要請です。
    いやぁーまさか影響が私の所にまで来るとは思いませんでしたよ、大成功でしたね。

    ……ぇぇと…

    ……ぁのもう一つの……ネタの方ですが……
    他人の黒歴史ネタや厨二病ネタを見るだけでトラウマが発動してしまう、未だ厨二病と向き合えない人も居るんですよ!とだけ申し上げておきます。
    えぇ、そっと閉じましたよ、耳まで赤くなって^^

     |  玄米茶  |  返信
  4. こんばんは。
    x-finder が動きましたので、現象を確認できました。
    当方、64bit 環境でしたので XF64.exe ばかり起動してて何も起こらなくて困っていましたが、XF64.exe を起動したうえで XF.exe を起動しないといけなかったのですね^^;

    調査結果をご報告いたします。

    前回の回答も含めてもう一度まとめておきますね。

    > 同じマクロを使用していてもver.1で開けるファイルが、ver2では開けない。

    Mery2 ではカレントディレクトリが必ずしも Mery.exe のパスとは限らないために発生しております。前回回答いたしましたとおり、Mery.exe を起動したときのカレントディレクトリを基準とした相対パスになります。

    x-finder 経由だと関連付けられたテキストファイルが存在するディレクトリがカレントディレクトリになります。ちなみに x-finder 側で個別にカレントディレクトリを設定するような項目は見つけられませんでした。(どこかにあるのかもしれませんが・・・)

    なのでマクロから相対パスを指定する場合は相対パスの基準となるカレントディレクトリをマクロ内で指定してやる必要があります。

    こんな感じです。

    var w = new ActiveXObject("WScript.Shell");
    w.CurrentDirectory = "c:\\";

    起動時マクロを使用した場合のマクロ内での相対パス指定などとの兼ね合いもありますので現状の仕様のままにしておきます。上記のようにマクロ内でカレントディレクトリを指定していただければと思います。

    > 外部ツールバーのアイコンが消える。

    この問題の原因は、やはりカレントディレクトリが Mery.exe ではないためなのですが、こちらに関しては Mery 側で Mery.exe を基準とした相対パスとして認識するよう修正を行います。(他のアプリケーションとかを観察してみると、そのアプリの実行ファイルのパスを基準に相対パスを見るようなものが多いようですので。)

    本件、お手数をおかけして申し訳ございませんが、配布されているマクロ内にて相対パスの基準となるカレントディレクトリを上記の通り明示的に指定していただければと思います。

    外部ツールアイコンが消えたりする件に関しましては Mery 側で対策を行いたいと思います。

    以上、よろしくお願いいたします。

     |  Kuro  |  返信
  5. ニアミスでした・・・w
    先ほど上の方に回答を書いたのですが、返信させていただきますね。

    > X-Finderユーザー待ちですかね。

    一応、マクロの微修正と Mery 側での対策が必要になりそうです。

    > 空欄にしたら送れました。色々変更しててその時勘違いしたみたいです。すみません。

    いえいえ、問題なさそうで良かったです。

    > 実は今回の件、エイプリルフールネタでMeryが新しくなった事を知った方からのヘルプ要請です。
    > いやぁーまさか影響が私の所にまで来るとは思いませんでしたよ、大成功でしたね。

    エイプリルフールネタも GIGAZINE に掲載されたことで訪問数が跳ね上がっておりました。ご迷惑をおかけしてしまい申し訳ございません。。。まさかこんな話題になっているとはつゆ知らず。。。

    > ……ぁのもう一つの……ネタの方ですが……
    > 他人の黒歴史ネタや厨二病ネタを見るだけでトラウマが発動してしまう、未だ厨二病と向き合えない人も居るんですよ!とだけ申し上げておきます。
    > えぇ、そっと閉じましたよ、耳まで赤くなって^^

    中二病ネタ、楽しんでいただけたようで良かったです(違
    しかし私は他人の中二病ネタを見るのが大好きなので、こりゃオモシレーだろw と思って自虐黒歴史を公開してみた次第であり、そう言われてしまうとこちらも恥ずかしくなってきました。うあぁぁぁぁあ!

     |  Kuro  |  返信
  6. > 一応、マクロの微修正と Mery 側での対策が必要になりそうです。

    了解しました。適当な場所で再取得するようマクロを変更しておきます。

    普段と違う作業をしていると見つかるものですね、不具合。
    別スレ立てるほどの物じゃないのでここで報告しておきます。

    ●キャレットの位置ズレの不具合
    win xp, 7
    Bild: 2.1.5.4624

    次の状態でバグを見つけました。( | ←キャレットの位置)

    000 (1行目)
    111 (2行目)

    000| ←1行目の最後のココにキャレットを持っていきdeleteを押す。
    111

    000|111 ←すると、こうなる。

    ここでおもむろに、[元に戻す]ボタンと[やり直し]ボタンを連続して押してみます。

    0001|11 ←すると、キャレット位置にズレが発生します。

    ver.1でも発生してるので、エディタエンジンあたりのバグでしょうか。
    簡単には弄れなさそうな場所かもしれませんがこれもよろしくお願いします。
    またか……(´・ω・`) と凹んだそんな時は、耳を塞いで "アーアー見てませーん" と唱えればいいと思います。

    では、

     |  玄米茶  |  返信
  7. (´・ω・`) アーアー見てませーん

    エディタエンジンの真魚エディタさんでも発生していますね。
    だからきっと仕様デス!仕様ナノデス!!

    ご報告ありがとうございます。
    お察しの通り、手を入れるのが難しそうな場所ですので、本家が修正してくださることを願いたいところですね・・・。

     |  Kuro  |  返信
  8. > エディタエンジンの真魚エディタさんでも発生していますね。
    > だからきっと仕様デス!仕様ナノデス!!

    やはり無理そうな場所でしたか、では仕様ですね。

    マクロの変更の方ですが、基準を何処に置こうか迷いましたが結局Mery.exeにして動作確認しました。
    丁寧な対応ありがとうございました。

     |  玄米茶  |  返信
スポンサーリンク