スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



mirrorMan - ZIP圧縮解凍












右クリックメニューからZIP圧縮を選択します。















緑色でmirrorMan.zip圧縮フォルダが作成されました。非同期処理なので、表示されない場合は画面を更新してください。



中を開いて参照することも可能です。もう一方のペインから圧縮フォルダ内に追加コピーすることもできますが、非可視の怪しげなシステムファイルができるケースもあり、個人情報を含めずに人に渡したい場合は、しない方がいいかもしれません。











続いてソースの抜粋です。

<script type="text/javascript" defer src="./js/jquery.contextmenu.r2.js"></script>
コンテキストメニューのjQueryプラグインを読み込みます。

<div class="contextMenu" id="conMenuLftItms">
<ul>
<li id="verbZipTo">ZIP圧縮 </li>
<li id="verbZipfrom">ZIP解凍 </li>
</ul>
</div>
コンテキストメニューに表示する要素を作成します。

function initContextMenu(){
$('#rhtClkLftItmsAra').contextMenu('conMenuLftItms',{
bindings:{
'verbZipTo' : function(t){ invokeVerbZip() },
'verbZipfrom': function(t){ invokeVerbZip('extract') }
}
}
選択された時の動作を起動時に読み込ませます。

function invokeVerbZip(p){
if(!selItmObj) return;
var intLR = getLR(4);
if(p =="extract")
ssh.NameSpace(getAdrBar(intLR)).CopyHere(selItmObj.GetFolder.Items());
else{
cntSelItmId(0);
selItmObj.InvokeVerbEx("copy");
var zt = ["Compressed (zipped) Folder.ZFSendToTarget", //XP
"圧縮 (zip 形式) フォルダ.ZFSendToTarget"]; //Vista
for(var i in zt){
var tgt = ssh.NameSpace(wsh.SpecialFolders("SendTo")).ParseName(zt[i]);
if(tgt){ tgt.InvokeVerbEx("paste");break}
}
}
}
selItmObjは現在フォーカスされているファイル/フォルダ名からShell.ApplicationでNameSpace(fol).ParseName(item)したものを格納しています。フォーカスが外れるとnullにしているので、右クリック時に選択されているファイル/フォルダがあるかどうかのチェックにしています。
解凍が選択された場合、selItmObjのフォルダオブジェクトのItems()をCopyHereしてやると解凍されます。

そういうことのようです。
解凍さえしてくれれば僕は満足です。

圧縮が選択された場合、エクスプローラの右クリックメニューをシミュレートしてくれるInvokeVerbEx("copy")メソッドを使用してselItmObjをクリップボードに送ります。これでエクスプローラ上でファイル/フォルダをコピーしたのと同等の状態になります。
そして、同じくエクスプローラの右クリックメニュー「送る」の特殊フォルダにある特殊ファイルに対し、また同じく、エクスプローラの右クリックメニュー「貼り付け」で圧縮されます。

そういうことのようです。
圧縮さえしてくれれば僕は満足です。

ちなみに、XPとVistaでファイル名が変わってしまっているので、こうなっています。
いえいえ無事動作して僕は満足です。
スポンサーサイト



comment

Secret

while(aho.atEndofStream)

笹部 政宏
笹部 政宏
mail




フリーソフツ
Category
はてブ
Monthly Archive
New Entry
New Comment
New Trackback
RSS
Copyright © Kittens flewby me All Rights Reserved.

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。