2022-07-19 21:47:44
Re②:パスワード付き解凍のエラー処理
雪乃☆雫 さんへ 返答ありがとうございます。 このまま、組み込んで見ます。 😄 まず、パスワードが違うよ!ってゆうエラーのダイアログは、「7-zip32.dllより」ってなってるとおり、dllのエラーをそのまま表示させてるだけっぽくて、なでしこさん的には正常終了したことになっているからエラー監視には引っかからないんですよね。
dllの命令を呼んで実行するの自体は正常にできたよってことだと思います。 「それ」とかにdllの命令の方が正常終了したかどうかの返り値でも入ってくれていると良かったんですけど、空なんですよね>< 「圧縮解凍実行」でコマンド送ってみても、だめみたいでした。 しょうがないので、直で7-zip32.dllの命令呼んでみました。 #----------------------------------------------------------- PASS=「123」 書庫ファイル=「{デスクトップ}test.zip」 解凍先=「{デスクトップ}test」 エラー監視 PASSで書庫ファイルのパスワード付書庫確認。 エラーならば、 「エラーです。エラー値:{それ}」と言う。終わる。 「解凍します」と言う。 PASSで書庫ファイルを解凍先へパスワード付解凍。 ●パスワード付書庫確認(PASSでAの) cmd=「t {A} -p{PASS} -hide」 SevenZip("",cmd,"",0) もし、それが0でなければ、エラー発生。 ●SevenZip(_hwnd,_szCmdLine,_szOutput,_dwSize) =DLL("7-zip32.dll", "int SevenZip( HWND _hwnd, LPCSTR _szCmdLine, LPSTR _szOutput, DWORD _dwSize )") #----------------------------------------------------------- コマンドによって直接解凍もできますが、エラーなっても解凍先フォルダはどうしても先に作られちゃう仕様みたいなので、先にパスワード確認してから解凍の方がいいかなという。 あと、このコマンドはパスワードをチェックするものではなく、 書庫の正当性を診断(?)するとゆうものなので、パスワード違い以外の問題でもエラーになると思います。いちおうエラー値はそれに返ってきてるけど説明書見ても「エラー値は未検証」とかなってるので分類できません~💦 |