ずいぶん寒くなりましたが、お元気ですか?
元気があれば何でもできる。
謎の人です。こんにちわ。机がないので立ち仕事ですよ!(嘘)
みなさん、UserAction Extension、使ってますか?
Sleipnir の様々な機能を JScript/VBScript で開発することが可能になります。
ユーザーが作成したスクリプトがアクションとして登録されるので、メニューやマウスジェスチャなどから呼び出すことができるようになります。
私も、自分がちょこっと使うための「オレオレスクリプト」を日々作ってますよ。
Perl で。
Perl で ActiveScript な情報は意外に少ないので、以下、簡単に手順を。
- ActivePerl をインストール
- resources/languages/default/english/ScriptEngine.ini
に一行追記
pl=PerlScript
- plugins/scripts
に、自作 Perl script を設置 (拡張子は .pl で) - Sleipnir オプション >> ユーザインタフェースでメニューやマウスジェスチャに追加
- 拡張子 .pls にすると MP3 Player のプレイリストとぶつかるので .pl で
- ScriptEngine.ini に対して行った修正は、Sleipnir をアップデートすると元に戻ってしまいます。この点については「すてきな解決策検討中」と RAPT が言ってた
- Ruby や Python でも同様の修正で動作可能と思います
その他注意点
JScript/VBScript 以外で UserAction !
使い慣れた言語で Sleipnir を拡張 !!
自分のための機能追加しまくり !!!
問題があっても自分だけが困るので無問題 !!!!
な「オレオレスクリプト」、みなさんもいかがでしょう?
本エントリの最後に、動作可能サンプル掲載しますので、ぜひお試しください。
ありがとうございました。
use strict;
use warnings;
use Win32::OLE;
my $api = new Win32::OLE('Sleipnir.API');
my $id = $api->NewWindow('about:blank', 1);
my $document = $api->GetDocumentObject($id);
my $str = '新しいドキュメントを開きました。';
$str .= '<br>アウトプット Dock は';
$str .= $api->OutputVisible ? '開いています' : '閉じています';
$document->write('<body>'.$str.'</body>');
$str = 'DOM もさわれます';
$api->MessageBox($str);
my $obj = $document->createElement('DIV');
$obj->{innerHTML} = $str;
$document->getElementsByTagName('BODY')->item(0)->appendChild($obj);
alert('OK をクリックすると閉じます');
$api->Close($id);
__END__