HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0901
nepissatzipを、一時的に解凍して、さらにzip拡張子を変え、進行状況を流し込みたい。8解決


nepissat

リンク

2014/9/1(Mon) 21:59:57|NO.64612

最近投稿ばっかりしてすみません。

・zipを解答する
・中身はzipだが、拡張子を変えた状態でも解凍できるようにしたい。
・進行状況をHSP側で読み取りたい。
以上のことをしたいです。
外部dllokです。
お願いします。



この記事に返信する


skyblue

リンク

2014/9/2(Tue) 16:22:16|NO.64622

・zipを解答する
・中身はzipだが、拡張子を変えた状態でも解凍できるようにしたい。
・進行状況をHSP側で読み取りたい。
zipは比較的アルゴリズムなどが公開されているのでそれを元に実装する。



nepissat

リンク

2014/9/2(Tue) 18:28:06|NO.64625

unzip32.dllを使用していますが、
・進行状況をHSP側で読み取りたい。
ができません。
UNZIP32D.txtを読みましたが、そういう説明がありませんでした。



Rosh

リンク

2014/9/2(Tue) 21:13:55|NO.64643

UNZIP32.API というテキストファイルを読むと
「ウィンドウズ・メッセージ」の項目に

 wm_arcextract メッセージは,UnZipSetOwnerWindow() で設定したウィンドウ
に UNZIP32.DLL から送られます。
このメッセージを受け取ることにより UNZIP32.DLL がこれから処理する格納ファ
イル名やファイルサイズ等を得ることができます。
 wm_arcextract メッセージは、使用する前に RegisterWindowMessage() でシス
テムに登録してください。

とあって、メッセージ割り込みで途中経過を得られそうな事が書かれてますね。
この辺の処理と、受け取ったポインタから構造体へのアクセスが出来れば
進行状況の読み取りはできそうですよ。



cats

リンク

2014/9/2(Tue) 22:51:40|NO.64646

7zの拡張ライブラリはどうでしょうか。
http://www.vector.co.jp/soft/win95/util/se252429.html
zipも扱えて、HSPからも呼び出すことができます。
ただAPIがたくさんあって整理するのが面倒でしょう。



nepissat

リンク

2014/9/4(Thu) 19:24:57|NO.64681

Roshさんありがとうございます。

RegisterWindowMessage()の登録と、UnZipSetOwnerWindow()の設定はできたのですが、

wm_arcextractの使い方がわかりません・



nepissat

リンク

2014/9/5(Fri) 17:16:52|NO.64694

ファイルサイズ測ってそれを計算して...
という方法を思いつけましたが、
可能ですか?



Rosh

リンク

2014/9/5(Fri) 21:57:41|NO.64711

> wm_arcextractの使い方がわかりません
自分は試してないので無責任で申し訳ないけど
wm_arcextract 自体はただの文字列で
RegisterWindowMessage()で登録した時に得られる整数値が
ウィンドウメッセージとして受け取る値になると思われるので
この得られた整数値を oncmd に渡せば、一緒に渡したラベルに飛んでくれると思います。



nepissat

リンク

2014/9/6(Sat) 13:44:54|NO.64715

できました。
進行状況を取得できました。



ONION software Copyright 1997-2023(c) All rights reserved.