2012 February 08
2012年02月08日のツイート
@barrackdo: "当面は海外のみでサービスを提供する。動作の安定性を確認したうえで、日本国内向けにも発表する予定である。" / NHKワールドTVがAndroid端末でも視聴可能に、ラジオ番組の多言語化も - ニュース:ITpro URL #itprojp
@barrackdo: 今日は早めにブログ書けた。 / 続・ScriptRegisterをフォークする - (TooLab.)Lab. 研究日誌 (id:barrackdo / @barrackdo) URL
@barrackdo: @tabayan なるほど。一応その辺も予想はしていたんですが、わざわざ画像で解説するんなら想定は初心者向けかなと思ったので不思議だなと。そして、そういう層は少しでも画面写真と違うと混乱する人とか極端な英語アレルギーの人とか居そうですしw
2012-02-08 23:06:16 via web to @tabayan
@barrackdo: 何故に画像は英語版なんだろう?w / 画像で解説する Sleipnir 3 for Windows の良くある質問 URL @fenrir_officialさんから
@barrackdo: @fenrir_dev 遅くまで乙です
2012-02-08 22:44:21 via web to @fenrir_dev
@barrackdo: "Kubuntuプロジェクトは商業的にみて成功とはいい難い状況が続いており" / 英Canonical、Kubuntuプロジェクトへの金銭的支援を打ち切る - SourceForge.JP Magazine URL @sfjp_magazine
続・ScriptRegisterをフォークする
久々の Sleipnir 2 用新作プラグイン
Sleipnir 2 と Sleipnir Mobile のブックマークを同期させる「Fenrir Pass Bookmark プラグイン」のα版が公開されましたね。
まだ、αなので気になった点があれば Twitter や Facebook や 2ch やなんやらで要望投げていきましょう。
個人的には"Sleipnir 2 のブックマークとは独立"しているらしいし、使ってみようかな。
何だかんだでまだ必要無いしと Fenrir Pass 取って無かったのですが、遂に年貢の納め時(?)が来たようですw
Sleipnir Mobile とブックマークの共有ができる Sleipnir 2 用プラグインα版をリリースしました
[追記 2012 Feb. 9th 00:30ごろ]
Fenrir Pass Bookmark と Nun! Extension の相性が悪いっぽいらしいです。
Fenrir Pass Bookmark と Nun! Extension の相性が悪いみたいなので調整中です。調整が完了したらアップデートしますので、終了時エラーが発生する場合は Nun! の仕様を一時中止してください。(と、言ってみるテスト。
https://twitter.com/t_o/status/167267906432929792
[/追記]
とあるエントリを読んで考えてみた
Sleipnirを初心者がいじりまくるブログさんが3年ぶりに復活されたみたいですね。
で、ScriptRegisterを導入してスクリプトをどんどん導入しようを読んで改めて考えさられました。
残念ながら Firefox とか Chrome と比較して Sleipnir 2 はスクリプトを導入するときなどに手間がかかります。
いや、Fenrir 謹製なら SmartInstaller でワンクリックなんですけどね。SAHK もワンクリックでおkですけどそこに至るまでの準備が必要ですし。
要するに慣れた人なら呼吸と同じくらい特に考えるまでも無くさくっとインストール可能ですが、慣れない人には結構な負担です。
かくいう私も使い始めの頃はスクリプトの種類の違いとかフォルダ階層とか混乱していたような記憶があります。
そんなことを思いながら読んでいたら、もうちょっとどうにかできないかと灰色の脳をこねくり回して搾り出してみました。
その方法とは Sleipnir スクリプト を使うことである。*1
ちなみに Sleipnir のスクリプトには勘違いしやすい部分がかぁーなぁーりあるので、注意されたし。
Sleipnirのスクリプトがわかりにくいので整理してみる。とか読むと多少理解の手助けになるかもしれない。
話を戻してこの結論に至った過程としては、上でも触れているがフォルダ階層が分かりにくいので、そこん所を考えないようにできる方法があるからだ。
という訳で少し書いてみる。
0.事前にやっておくべきこと
Sleipnirオプションの「クライアント>全般≫スクリプトによるクライアントの操作を許可する」にチェックを入れておく。
UserAction Extension をインストールしておく。
1.Sleipnir スクリプト が入っているフォルダを開く
最近の Sleipnir のデフォルト「advance」スタイルならメニューの「ツール>スクリプト>スクリプトの整理」をクリックすれば良い。
「sleipnir」スタイルであるならば、「スクリプト>スクリプトの整理」である。
2.Sleipnir スクリプトをいくつか作る
先ほど開いたフォルダに以下で紹介する内容のファイルを作ってください。拡張子は".js"です。
ファイルを作成したあとメニューから「スクリプトの再読み込み」を行ってください。先ほどの「スクリプトの整理」の近くにあります。
- フォルダを開く - UAスクリプト.js
(function(){new ActiveXObject("Shell.Application").Open(new ActiveXObject('Sleipnir.API').AppPath.replace(/bin\\$/, 'plugins\\scripts'));})();
※UAスクリプトを置くフォルダを開くスクリプトです。
- フォルダを開く - Seahorseスクリプト.js
(function(){new ActiveXObject("Shell.Application").Open(new ActiveXObject('Sleipnir.API').AppPath.replace(/bin\\$/, 'plugins\\seahorse'));})();
※Seahorseスクリプトを置くフォルダを開くスクリプトです。今回の話には関係ないんですけど作っておくと便利なときもあるかも。
- フォルダを開く - ユーザ設定フォルダ.js
(function(){new ActiveXObject("Shell.Application").Open(new ActiveXObject('Sleipnir.API').UserPath);})();
※ユーザ設定各種のファイルがある場所を開きます。これも今回の話には関係ないんですけど作っておくと便利なときもあるかも。
- ScriptRegisterBranch.js
// Original source code is "ScriptRegister"( http://community.tabbrowser.jp/forum/viewtopic.php?p=3619#3619 ) // Origin is Sleipnir User Action Script // Written by Puyo2 var pnir = new ActiveXObject('Sleipnir.API'); if (pnir != null) { var document; if(document == null) { id = pnir.GetDocumentID(pnir.ActiveIndex); document = pnir.GetDocumentObject(id); } var targetDocument = document; while ((/frame/i).test(targetDocument.activeElement.tagName)) { targetDocument = targetDocument.activeElement.contentWindow.document; } var selectedText = targetDocument.selection.createRange().text; if(selectedText) { selectedText = selectedText.replace(/ *[|\r]\n/g, "\n"); var end = (pnir.AppPath+'..\\plugins\\scripts\\hoge').lastIndexOf("\\"); end = (pnir.AppPath+'..\\plugins\\scripts\\hoge').lastIndexOf("\\", end - 1); var path = (pnir.AppPath+'..\\plugins\\scripts\\hoge').substring(0, end); path = path.replace(/[^\\]+\\\.\.\\/, ""); if((/==User[S]cript==/).test(selectedText)) { var extension = ".user.js"; path += "\\seahorse\\"; var message = "登録するSeaHorseスクリプトの名前を入力してください(拡張子不要)"; } else if((/javascript:/).test(selectedText)){ var extension = ".js"; path += "\\..\\bookmarklet\\"; var message = "登録するBookmarkletの名前を入力してください(拡張子不要)"; }else { var extension = ".js"; path += "\\scripts\\"; var message = "登録するUserActionスクリプトの名前を入力してください(拡張子不要)"; } var fileName = pnir.InputBox(message, ""); if(fileName) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.CreateTextFile(path + fileName + extension, true, false); try { if(file) { file.Write(selectedText); pnir.MessageBox("正常にスクリプトを登録できました"); } else { pnir.MessageBox(path + fileName + extension + "を開けない?ファイル名に使えない文字が含まれているかもしれません"); } } finally { file.Close(); } } else { pnir.MessageBox("処理を中止しました"); } } else { pnir.MessageBox("選択文字列の取得に失敗しました"); } } else { pnir.MessageBox("オプションの\n クライアント|全般|スクリプトによるクライアントの操作を許可する\nにチェックがないと動作しません"); }
※UAスクリプトの ScriptRegister を Sleipnirスクリプトに移植したものです。*2
3.オリジナルの UserAction版 ScriptRegister を作成する。
UserAction スクリプト配布で ScriptRegister のコードをトリプルクリックして選択状態にしたままメニューの「スクリプト」に「ScriptRegisterBranch*3」が追加されているので実行するとScriptRegisterがUAスクリプトとして作成される。*4
念のため同じく先ほど作ったはずの「フォルダを開く - UAスクリプト」を実行してみて、作ったファイルがあるか確認してみよう。
あとは、Sleipnirを一度再起動させて、Sleipnirのメニューに登録すればおk。
この辺はネタ元のScriptRegisterを導入してスクリプトをどんどん導入しように書いてあるので詳細は割愛。
ふと思ったこと
そう言えばVista以降はUACとかVirtualStoreとかセキュリティ的に厳しくなったんだけど。
そういう制限があってもScriptRegisterとかちゃんと動くのかな?
メインはアーカイブ版だし、Adminユーザだし、普段ScriptRegister使わないし、検証するの面倒だし試さないけどw
*1:「Sleipnir用スクリプト」「1.xx 互換スクリプト」「WSH スクリプト」などとも言われる
*2:正確には1年前に書いたエントリ「ScriptRegisterをフォークする」で紹介したものを移植
*3:ファイル名を別のにしたならそのファイル名
*4:ファイル名の入力が必要なのだが、UAスクリプトの名前は半角英数と"_"(半角アンダーバー)のみなので注意。よって「ScriptRegister」が無難










