スクリプトのメソッド追加の要望No.01405
Roka さん 11/06/09 11:27
 
すでにいろいろ追加していただき本当にありがとうございます。
スクリプトが充実することでカスタマイズが容易になり、便利になりました。
今回さらにいくつか要望を出させていただきますので検討よろしくお願いします。

1.フォルダサイドバーのフォルダをクリックした時にそのフォルダが選択状態にな
りますが、
その状態であることを知る手段が欲しいです。
例えば GetItemState で -1 を渡した時でもいいですし、別のメソッドでもいいです。
GetNextItem でどうにかならないか試してみましたが、フォルダサイドバーをクリッ
クして選択状態の時と
その後タブを押してフォーカスが移動して選択状態でない時が同じだったのでダメで
した。

2.VBScriptの GetFileName, GetBaseName, GetExtensionName に相当するメソッド
が欲しいです。
別個のメソッドではなく1つのメソッドのパラメータで目的の物を抜き出す形でいい
と思います。

3.これは単なるアイデアですが共通で使えるプロシージャのファイルが指定できる
と便利だと思います。
例えば秀丸ファイラーClassicのプログラムフォルダに Common.vbs や Common.js が
ある場合は
その中のプロシージャをコール出来るようにすれば、よく使う物をその中にまとめる
ことが出来ると思います。

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

[ ]
RE:01405 スクリプトのメソッド追加の要望No.01408
秀丸担当 さん 11/06/09 12:32
 

>1.フォルダサイドバーのフォルダをクリックした時にそのフォルダが選択状態にな
>りますが、
>その状態であることを知る手段が欲しいです。

この状態というのがどの状態というのが把握できなかったのですが、ようはフ
ォーカスがフォルダ枠にあるということがわかればいいということでしょうか。
そういうことだとして検討させていただきます。

>2.VBScriptの GetFileName, GetBaseName, GetExtensionName に相当するメソッド
>が欲しいです。

VBScriptの場合、
WScript.CreateObjectは使えませんが、グローバルなCreateObjectは使えます。
WScript.Echoは使えませんが、VBScriptのMsgBoxは使えます。

例:
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  strPath = "C:\folder\file.txt"
  MsgBox strPath & vbCrLf _
    & objFSO.GetDriveName(strPath) & vbCrLf _
    & objFSO.GetFileName(strPath) & vbCrLf _
    & objFSO.GetBaseName(strPath) & vbCrLf _
    & objFSO.GetExtensionName(strPath) & vbCrLf _
    & objFSO.GetParentFolderName(strPath)

JScriptの場合も、
WScript.CreateObjectは使えませんが、new ActiveXObjectは使えます。
WScript.Echoは使えませんが、秀丸ファイラー固有のMessageメソッドは使えま
す。

例:
  var objFSO = new ActiveXObject("Scripting.FileSystemObject");
  strPath = "C:\\folder\\file.txt";
  Message( strPath + "\n"
    + objFSO.GetDriveName(strPath) + "\n"
    + objFSO.GetFileName(strPath) + "\n"
    + objFSO.GetBaseName(strPath) + "\n"
    + objFSO.GetExtensionName(strPath) + "\n"
    + objFSO.GetParentFolderName(strPath) );


>3.これは単なるアイデアですが共通で使えるプロシージャのファイルが指定できる
>と便利だと思います。

普通のWScript経由の場合どうするのかと、調べてみたら方法があるようで、
同じ方法を秀丸ファイラーClassicでもやってみたら使えました。

VBScriptの場合

  Execute CreateObject("Scripting.FileSystemObject") _
    .OpenTextFile("c:\folder\common.vbs", 1).ReadAll()

JScriptの場合

  eval( new ActiveXObject("Scripting.FileSystemObject").
     OpenTextFile("c:\\_folder1a\\common.js", 1).ReadAll() );


これをスクリプトの先頭でやっておくとその中の関数が呼べるようです。

[ ]
RE:01408 スクリプトのメソッド追加の要望No.01409
Roka さん 11/06/09 13:43
 
>
>この状態というのがどの状態というのが把握できなかったのですが、ようはフ
>ォーカスがフォルダ枠にあるということがわかればいいということでしょうか。
>

はい、そうです。

>
>VBScriptの場合、
>WScript.CreateObjectは使えませんが、グローバルなCreateObjectは使えます。
>

はい、それは承知していますが可能な限り直接記述で実現させたいと思っています。
ファイル・フォルダ関係のメソッドは要望がそれなりにあるのではないかと思い要望
した次第です。

>
>これをスクリプトの先頭でやっておくとその中の関数が呼べるようです。

こちらも知ってはいましたが上と同じ理由での要望でした。
とりあえずファイル参照のスクリプトにする方向で検討してみます。
ファイル参照のスクリプトも秀丸エディタや秀丸メールのマクロの指定方法のように
もっと手軽にできるといいのですが...

[ ]
RE:01409 スクリプトのメソッド追加の要望No.01411
秀丸担当 さん 11/06/09 14:42
 

>はい、そうです。

了解しました。
フォーカスを得るようなメソッドだとフォーカスの当たる場所は幾つもあって使
いづらいと思うので、
・ファイル一覧上かどうか
・フォルダ枠(またはタブごとのフォルダ枠)かどうか
・それ以外
の3つのうちいずれかを返すようなメソッドで検討したいと思います。

>はい、それは承知していますが可能な限り直接記述で実現させたいと思っています。

>こちらも知ってはいましたが上と同じ理由での要望でした。

そういうことでしたか。
ブックマーク上に一行で書く場合は簡単に書けたら便利だと思います。
できたらいいということで参考にさせていただきます。

ブックマークのプロパティで参照ボタンよりファイル参照して簡単に設定できる
ようなものも検討させていただきます。

[ ]
RE:01411 スクリプトのメソッド追加の要望No.01419
Roka さん 11/06/09 21:32
 
>フォーカスを得るようなメソッドだとフォーカスの当たる場所は幾つもあって使
>いづらいと思うので、
>・ファイル一覧上かどうか
>・フォルダ枠(またはタブごとのフォルダ枠)かどうか
>・それ以外
>の3つのうちいずれかを返すようなメソッドで検討したいと思います。
>

GetFocusTargetの実装ありがとうございました。

[ ]