◀ANSI版開発トップへ
  • 4044 カレントマクロのパス取得 他
    • 4045 Re:カレントマクロのパス取得 他
      • 4046 Re2:カレントマクロのパス取得 他
        • 4047 Re3:カレントマクロのパス取得 他
          • 4048 Re4:カレントマクロのパス取得 他
    • 4053 取り込みありがとうございました
  • [4044] カレントマクロのパス取得 他 FILE 2005年09月19日 16:12

     カレントマクロのパス取得を実装してみました。
    (ExpandParameterで$M)

     マクロの設定ファイル名や外部.wscファイル名を相対パスで
    保持しておいて、実行時にマクロのフルパスを元に絶対パスを
    生成すれば、環境に依存しにくくなると思います。
     (サクラエディタでマクロを使い始めてから、ずっと欲しい機能でした)


     ついでに、

    ・サクラエディタのパスを取得する(>>macro:207)
    にも対応してみました。(ExpandParameterで$S)

    ・MsgBox, InputBox(>>dev:3921)
    も少し修正して取り込んでいます。
     (wscのMsgBox, InputBoxだと、一度フォーカスを失った時に、
    ダイアログがサクラエディタの裏側に表示されるが使いづらいので)

     差分ファイルは、≪ 投稿許可サイズオーバーです. ≫と言われて
    しまいましたので、以下のアドレスに(最低1ヶ月ぐらい)置いておきます。

    www001.upp.so-net.ne.jp/folder/BywqBzIr/050919-Sakura_Diff/ssrc_2005-09-03_CurMacro.diff

     Ver. 1.5.6.0(2005-09-03)をベースに変更し、
    Win95(+IE5.5), WinMe(+IE5.5), WinXP(+IE6)の環境で
    動作確認しました。
    • [4045] Re:カレントマクロのパス取得 他 miau 2005年09月19日 20:38

      ▼ FILEさん
      >  カレントマクロのパス取得を実装してみました。
      > (ExpandParameterで$M)

      要望を出そうと思って覗いてみたら、既に実装されているとは・・・。

      早速適用してみましたが、Win2000 でもちゃんと動作しました。
      これで外部スクリプトを実行するマクロが汎用的なものになりますね。
      ありがとうございます。

      > ・サクラエディタのパスを取得する(>>macro:207)
      > にも対応してみました。(ExpandParameterで$S)

      これも動作確認しました。
      sakura.exe を新規に起動したり >>macro:206 でりーやさんが言っていた

      > Perl(Script)での荒っぽい裏技としては、sakura.iniから読む
      > というテはあリかもです。(結構ストレスなく動きます)

      を実現する上で便利そうですね。
      • [4046] Re2:カレントマクロのパス取得 他 maru 2005年09月20日 00:19

        ▼ FILEさん
        >  カレントマクロのパス取得を実装してみました。
        > ・サクラエディタのパスを取得する(>>macro:207)

        ナイス&タイムリー!!こちらでも動作確認しました。

        ところで、$Sは「ScriptPath」にも見えるので
        $E(エディタパス)が最適と思っていました。
        ま、どちらでも・・・。

        ついでに質問ですが、MsgBoxやInputBoxは
        wscの中でしか動作しない?
        で、間違いありませんか?
        • [4047] Re3:カレントマクロのパス取得 他 FILE 2005年09月20日 23:09

           miau様、maru様、動作確認ありがとうございます。


          > ところで、$Sは「ScriptPath」にも見えるので
          > $E(エディタパス)が最適と思っていました。
          > ま、どちらでも・・・。

           「$Eの方がいい」というご意見が多数であれば、
          変更させていただきますが…。
           (SakuraのSから安直に名付けただけですので)


          > MsgBoxやInputBoxは
          > wscの中でしか動作しない?

           (こちらの環境では)現時点のサクラエディタでも、wsc内で
          MsgBoxやInputBoxが動作しています。(↓の制限付きで)
          > 一度フォーカスを失った時に、ダイアログがサクラエディタの裏側に
          > 表示される【の】(脱字修正)が使いづらいので

           上記の差分を適用すると、VBScript(拡張子vbs)から
          MsgBoxやInputBoxが使用できるようになります。
          • [4048] Re4:カレントマクロのパス取得 他 maru 2005年09月21日 00:12

            ▼ FILEさん

            【現時点のサクラエディタ】
            wsc内でのみMsgBoxやInputBoxがそれなりに動作する。

            【差分を適用後】
            VBScriptからMsgBoxやInputBoxが使用できるように。

            ということのようですね。確認できました。
            この修正はかなりgoodです。
    • [4053] 取り込みありがとうございました FILE 2005年10月05日 00:33

       1.5.7.0での取り込み、ありがとうございました。
       今まで以上にマクロが活用出来そうです。

       コードやコメントまで修正していただいた様で、
      本当にありがとうございました。(力不足でお手数掛けます…)


       以下、内部実装を見ていた時の話。

       フルパスを取得しようとソースコードを覗いていましたが、
      スクリプトが文字列で保持されているらしく、マクロの番号
      すら分かりませんでした。そのため、今回の修正でマクロの
      番号を保持する変数と、その変数へアクセスするための関数
      を追加させていただきました。(キーマクロも一応考慮)