2015年10月21日水曜日

SETZER ver0.56公開

久々に更新しました。前回の更新から2年半ぶりくらいですね。


SETZERはクリップボード履歴管理ソフト。eClipとClip.netに影響を受けてます。AA貼り付けツールの側面もあるのが特徴。


以前は、ツールチップの複数行表示時の文字列の折り返しがうまくいかず、ガタガタだった。それを修正したので、綺麗に表示されるようになってます。




今回の更新内容は以下。

  • ツールチップの折り返しに文字数を使ってたが、それをバイト数にした
  • 「PageUp」「PageDown」「Home」「End」が効くようにした
  • Ctrl+BackSpaceでテキストボックスの文字列を全消しにする
  • オプションウィンドウのサイズを調整
  • tray.icoを変更

バグや要望等があれば、ここのコメント欄に書くと修正するかもしれない

2015年10月5日月曜日

DockShow(メディアプレイヤー)を試す

DockShowは、Paper Plane xUI のウィンドウに埋め込んで使用するためのメディアプレイヤー。
その登録の仕方と使い方のメモ。

登録


DockShowをダウンロードしたあと、中にあるDockShow.EXE(DockShow64.EXE)をPPxフォルダに置く。
次いで、上の位置に埋め込みたいなら、以下を実行。
*dock add,t,%0\DockShow.EXE

編集して取込の場合は、次のようになる。
X_dock = { ; バー割当て(要IE4以降)*layout,*dock
CA_T = D:\bin\ppx2window64\\DockShow.EXE,100,0
}

これで、次のようになる。


メニューバーの下にあるのが DockShow。

削除するときは、次のコマンドを実行。
*dock delete,t,DockShow

ちなみに、下の位置に埋め込みたいなら次のようにする。t(top)をb(bottom)に変えればいいわけだ。
*dock add,b,%0\DockShow.EXE

使い方


上の位置に埋め込んだ場合、音楽ファイルにカーソルをあわせ、
*dock drop,t,DockShow

とすれば、それを再生する。マウスでのドラッグ&ドロップでもいい。


 左クリックで一時停止。右クリックで音量を調整できる。



SELECTEVENT


SELECTEVENTに登録すると、カーソルの動きと連動させて、音楽ファイルを再生することができる。カーソルを動かせば、それと連動して、カーソル下のファイルをDockShowで自動再生するわけだ。

まずは、以下を編集して取込。これは上に埋め込んでいる場合。もし、下に埋め込んでいるなら、tをbに変えよう。
E_syncevent = { 特製連動表示
AVI ,*dock drop,t,DockShow
MP2 ,*dock drop,t,DockShow
MP3 ,*dock drop,t,DockShow
MPG ,*dock drop,t,DockShow
WMA ,*dock drop,t,DockShow
WMV ,*dock drop,t,DockShow
WM ,*dock drop,t,DockShow
ASF ,*dock drop,t,DockShow
MID ,*dock drop,t,DockShow
}

ついで、以下を適当なキーに登録する。これで、カーソルと音楽再生の連動ON/OFFが、トグルでできるようになる。
*RotateExecute id,"*customize KC_main:SELECTEVENT,%%%%ME_syncevent %%: *linemessage 連動ON","*customize KC_main:-|SELECTEVENT=  %%: *linemessage 連動OFF"


追記 2016/09/28


*linecustによってもっと簡単にできるようになった。上記のコマンドの代わりに、以下を適当なキーに登録する。

*linecust ^syncevent,KC_main:SELECTEVENT,%%ME_syncevent


2015年9月30日水曜日

複数マーク時は動作を分岐

さっきの記事を書いた後、「そういやWinMergeも複数のファイルを引数に取るよな」「複数マーク時とそうで無い時とで分岐できれば便利かもしれぬ」「拡張子判別、パス判別に続いてマーク数判別とか新しそう」「PDF結合かWinMergeかには拡張子判別を使おう」などと昼飯を食べながらつらつらと考えていた。というわけで今日二回目の記事。

2つ以上マークがある時と、それ以外の時とで、Shift+Enterの動作を分岐させてみる。

以下をScriptフォルダに保存。

EntryMarkCount.js
//!*script

PPx.Result = PPx.EntryMarkCount; 

これは、マークエントリ数を返すだけのスクリプト。
次いで、以下を編集して取込。
A_exec    = {    ; エイリアス
pdftk    = "C:\Program Files (x86)\PDFtk\bin\pdftk.exe"
winmerge    = D:\bin\WinMerge\WinMergeU.exe
}
KC_main = {
\ENTER,*ifmatch 0;1,%*script(%0\Script\EntryMarkCount.js) %: %ME_scr %: *stop
  %ME_mark
}
E_mark    = {    ; \[Enter]用判別(複数マーク時)
CFG    ,%Q"WinMergeしますか?" %: %Ob %'winmerge' %#C
TXT    ,%Q"WinMergeしますか?" %: %Ob %'winmerge' %#C
INI    ,%Q"WinMergeしますか?" %: %Ob %'winmerge' %#C
JS    ,%Q"WinMergeしますか?" %: %Ob %'winmerge' %#C
PDF    ,%Q"PDFを連結しますか?" %: %Ob %'pdftk' %#C cat output %"結合時のファイル名を入力して下さい"%{%|output%|.pdf%} %: %K"@F5"
}

Shift+Enterを押した時、マークエントリ数が0あるいは1の時は、通常の判別E_scrを。2つ以上の時はE_markを実行するようにする。
E_markだが、拡張子がPDFの時には、PDFtkを使ってマークしたPDFファイル同士を結合。拡張子がCFG、TXT、INI、JSの時には、マークしたファイルの内容をWinMergeで比較する。


PDFtkでPDFを結合

PDFtkでは

pdftk.exe 1.pdf 2.pdf cat output output.pdf

でPDFファイルを結合できる。これをPPx 上で行えるようにする。

以下をScriptフォルダに保存。これは、マークファイルの名前を空白区切りで連結して返すスクリプト。マークファイルが二つ以上無ければ終了する。

concatname.js
//!*script

// マークファイルの名前を空白区切りで連結して返すスクリプト
// %*script(%0\Script\concatname.js)のようにして使う
var str = "";
var EntryObj = PPx.Entry;

// 二つ以上マークファイルが無ければ終了
if (PPx.EntryMarkCount < 2) {
  PPx.SetPopLineMessage("2つ以上のマークファイルがありません。");
  PPx.Quit(-1);
}
// マークファイルの名前を空白区切りで連結
EntryObj.FirstMark;
while(true){
  str += " " + EntryObj.Name;
  if(EntryObj.NextMark != 1) break;
}
// 値を返す
PPx.Result = str; 

結合したいPDFファイルを順番にマークし、

%Ob "C:\Program Files (x86)\PDFtk\bin\pdftk.exe" %*script(%0\Script\concatname.js) cat output %{%|output%|.pdf%}

を実行すると、ファイル名を入力するウィンドウが出る。


適当な名前を入力してOKを押せば、その名前でPDFファイルを結合する。

追記


よく考えたら、一々スクリプト使わなくても%#Cでいけるじゃん orz

 %Ob "C:\Program Files (x86)\PDFtk\bin\pdftk.exe" %#C cat output %{%|output%|.pdf%}

2015年9月10日木曜日

*RotateCustomizeで壁紙ローテート

Paper Plane xUI Text Module を導入すると、*RotateCustomize というコマンドが使えるようになる。これで、壁紙をローテート表示させてみる。

*RotateCustomize custid,customize1,customize2[,...]

    設定のトグル・ローテート処理を行います。具体的には実行する度に
    *customize custid=customize1
    *customize custid=customize2
      :
    *customize custid=customize1
      :
    と、実行するので、設定のトグルやローテートができます。
    設定中に「%」を含む場合は %% と指定してください。
    設定中に「"」を含む場合は "" と指定し、全体を「"」で括ってください。
    custidは「XC_stat」のように指定もできますし、「KC_main:A」のような
    指定もできます。

以下のようなコマンドを適当なキーに登録すればいい。
*RotateCustomize X_bg:Path,D:\Work\gazou1.jpg,D:\Work\gazou2.jpg,D:\Work\gazou3.jpg

もちろん、事前に壁紙を表示する設定にしておこう。

2015年9月9日水曜日

*ifmatchでパスによる判別実行



僕は、D:\Data\Musicの下にアルバム単位でフォルダを作り、そこに音楽ファイルを保存している。


画像ファイルは、D:\Work\画像フォルダの下に、カテゴリーごとにフォルダ分けして保存している。



音楽ファイルが入っているフォルダは音楽プレイヤーに投げ、画像ファイルが入っているフォルダは画像ビューアに投げる、ということを一つのキーでしたい。これを、*ifmatchを使ったパス判別によって実現する。

以下を編集して取込。

KC_main = { ; PPcメイン窓
\ENTER ,%ME_scr
}
E_scr = { ; \[Enter]用判別
:DIR ,*ifmatch "/D:\\Data\\Music/",%1 %: %Ob D:\bin\AIMP3\AIMP3.exe  %FCD %: *stop
 *ifmatch "/D:\\Work\\画像フォルダ/",%1 %: %Ob D:\bin\Hamana\Hamana.exe  %FCD %: *stop
 %K"@\ENTER"
}

ディレクトリにカーソルをあわせ、Shift+Enterを押した時、

  • パスにD:\Data\Musicが含まれている……Aimp3にそのディレクトリを投げる
  • パスにD:\Work\画像フォルダが含まれている……Hamanaにそのディレクトリを投げる
  • それ以外……通常のShift+Enter(容量の計算)

となる。
ちなみに、Shift+Enter用判別をShift+Enterに登録しているのは、こうしないと:DIRを設定しても反映しないから。Paper Plane xUI Part.5 585-596 を参照。

参考


以前はスクリプトを使って、パスによる判別実行をしていた。

2015年9月8日火曜日

サムネイルの余白の色を調整


サムネイル表示のとき、画像の余白部分の色が、背景色と異なることがあるのが気になっていた。


これを解消できないかと調べたことのまとめ。

画像キャッシュ


XC_ocigを設定することで、取得したサムネイル画像をキャッシュできるようになる。これにより、大量に画像があるフォルダでも、次回より高速にサムネイルを表示させることが可能になる。

XC_ocig = 1,2,0,1 ; 表示書式画像(n)の動作 (1),(2),(3),(4)
; (1)アイコン表示  0:なし 1:あり 2:画像無のみ
; (2)Explorer互換画像取得  0:しない 1:優先してする 2:Susie優先
; (3)書庫内画像を取得  0:しない 1:取得
; (4)取得画像を :thumbnail.jpg にキャッシュ 0:しない 1:する

この時、余白の色も同時に保存しているらしい。だから、背景色を変更した時、不一致が生じるわけだ。なので、一度キャッシュを削除し、作り直せばいい。

以下をScriptフォルダに保存。

deletethumbnail.js
//!*script

for (var i = 0; i < PPx.EntryAllCount; i++) {
  if (PPx.Entry(i).Size != 0){
    PPx.Execute('*delete "'+PPx.Entry(i).Name+':thumbnail.jpg"');
  }
}

このScriptを実行すれば、カレントフォルダのキャッシュが削除される。後は自動でサムネイルを作り直すはず。


エクスプローラー取得ディレクトリサムネイル



ディレクトリの余白の白い箇所を消せないか調べたが、ワンキーでこの背景色を調整するのは無理そう。
なので、大人しく、エクスプローラーの機能を用いた画像取得を停止させる。

XC_ocig = 1,0,0,1 ; 表示書式画像(n)の動作 (1),(2),(3),(4)
; (1)アイコン表示  0:なし 1:あり 2:画像無のみ
; (2)Explorer互換画像取得  0:しない 1:優先してする 2:Susie優先
; (3)書庫内画像を取得  0:しない 1:取得
; (4)取得画像を :thumbnail.jpg にキャッシュ 0:しない 1:する


ちなみに、ディレクトリアイコンはX_dicnで変更可。

X_dicn    =     ; ディレクトリ用のアイコンのパス 空欄:自動