再起動せずにSleipnirスクリプトを使う

pluginsフォルダにあるscriptsフォルダにスクリプトファイルを置いた場合再起動しなければ登録されないようで、何とか再起動せずに実行させたいと思い、懲りもせずまた下記のようなスクリプトを書いた。


plugins\scriptsに、"SScript"という名前(名前を変更する場合一行目を変更)のフォルダと、下記を"適当な名前.js"で保存して置き、下記のスクリプトSleipnirのショートカットキーなどに登録して実行するとSScriptに入れたスクリプトファイルを選択するダイアログが出るので選択して実行。


SScriptフォルダに入れるスクリプトWSHは使えないようだけど、Sleipnirに組み込まれているスクリプト(sleepなど)が使えるみたい。

前に書いたスタイルシート変更のスクリプトもフォルダ参照のダイアログを使ってたけど、ちといい忘れた事が。
サブフォルダのファイルは選択できません。色々試したり検索して調べてみてもダイアログから直接フォルダのパスは取得できても、ファイルだとどうしてもエラーになってしまい、結局できなかったというよりわからなかった。
なので、参照するフォルダには実行するファイルだけを置いてください。

追記

browseforfolderがエラーになる場合、違う方法を思い付きはしましたが
Sleipnirを今利用していないのでテストはしてませんので、動作するかわかりません。


browseforfolderでファイルを選択する変わりに、Sleipnirに組み込まれているInputBoxに
拡張子も含めて性格にファイル名を記入するという、ちと面倒くさいかもしれませんけどw

var dname = 'SScript';
var obj = sleipnir.api;
var fso = createobject('scripting.filesystemobject');
var dir = obj.apppath.replace(/bin\\$/i, 'plugins\\scripts\\' + dname);
if (!fso.folderexists(dir)) fso.createfolder(dir);

var file_path = obj.InputBox('ファイル名を記入してください', '');
if (file_path && fso.fileexists(fso.buildpath(dir, file_path)))
runscript(fso.buildpath(dir, file_path));
else
sleipnir.Alert('ファイルが見つかりません');

fso = null;
obj = null;