mgtoolsを使用しましたフォルダの圧縮解凍について
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
mgtoolsを使用しましたフォルダの圧縮解凍について
msg# 1
mysticage
投稿数: 77
V8からのマイグレーションしましたプロジェクトです。
フォルダを指定しまして、フォルダごとフォルダにあるファイルを圧縮して、lzh形式のファイルにて保存しています。
[mgtools.mgUnlha]を使用しまして圧縮・解凍をしています。
メニューから圧縮・解凍をするフォームを起動し、そのフォームで[mgtools.mgUnlha]を起動して、圧縮・解凍をしています。
圧縮・解凍自体は正常に処理されるのですが、圧縮(解凍)処理中に、修理中の画面外に表示されている、メニューのボタンをクリックすると、ボタンが押下されたように反応します。反応はしますが、圧縮・解凍処理は最後まで実行され正常に終了すのです。
しかし、圧縮・解凍処理が終了すると、処理中に、クリックした処理が動き出し、Magic自体が終了されてしまいます。
(メニューは反応しますが、[mgtools.mgUnlha]を呼び元のフォームは反応しません。)
V8の時は、このような現象は発生していませんでしたが、V10に移行してから発生しています。
圧縮・解凍処理中に画面外をクリックしても、処理の後ろにあるメニューのボタンが反応しないようにするにはどうしたらよろしいでしょうか?
mgtoolsのバージョン:1.6.0.0
長文で、申し訳ありませんが、教えて頂けないでしょうか。よろしくお願いします。
フォルダを指定しまして、フォルダごとフォルダにあるファイルを圧縮して、lzh形式のファイルにて保存しています。
[mgtools.mgUnlha]を使用しまして圧縮・解凍をしています。
メニューから圧縮・解凍をするフォームを起動し、そのフォームで[mgtools.mgUnlha]を起動して、圧縮・解凍をしています。
圧縮・解凍自体は正常に処理されるのですが、圧縮(解凍)処理中に、修理中の画面外に表示されている、メニューのボタンをクリックすると、ボタンが押下されたように反応します。反応はしますが、圧縮・解凍処理は最後まで実行され正常に終了すのです。
しかし、圧縮・解凍処理が終了すると、処理中に、クリックした処理が動き出し、Magic自体が終了されてしまいます。
(メニューは反応しますが、[mgtools.mgUnlha]を呼び元のフォームは反応しません。)
V8の時は、このような現象は発生していませんでしたが、V10に移行してから発生しています。
圧縮・解凍処理中に画面外をクリックしても、処理の後ろにあるメニューのボタンが反応しないようにするにはどうしたらよろしいでしょうか?
mgtoolsのバージョン:1.6.0.0
長文で、申し訳ありませんが、教えて頂けないでしょうか。よろしくお願いします。
投票数:0
平均点:0.00
Re: mgtoolsを使用しましたフォルダの圧縮解凍について
msg# 1.1
yone
投稿数: 30
mysticageさん
[mgtools.mgUnlha]第一パラメータのウィンドウハンドル
(winhwnd(x))はきちんとフォーム表示を行うタスクを指定していますか?
フォーム表示を行っていないタスクのウィンドウハンドルを
指定すると、おっしゃっている現象になるはずです。
[mgtools.mgUnlha]第一パラメータのウィンドウハンドル
(winhwnd(x))はきちんとフォーム表示を行うタスクを指定していますか?
フォーム表示を行っていないタスクのウィンドウハンドルを
指定すると、おっしゃっている現象になるはずです。
投票数:0
平均点:0.00
Re: mgtoolsを使用しましたフォルダの圧縮解凍について
msg# 1.1.1
mysticage
投稿数: 77
yune さん、こんばんは。
メニューフォームから、コールプログラムで、圧縮解凍用のフォームを起動しています。圧縮解凍用のフォームで、ボタン押下後の処理で、互換性のレコードメインの中で、[mgtools.mgUnlha]を起動しています。
[mgtools.mgUnlha]第一パラメータのウィンドウハンドル
(winhwnd(x))のxには、[0](ゼロ)を指定しています。
この値ですと、圧縮解凍用のフォームのボタンなどの上でマウスでクリックしても、何も反応しないのでが、圧縮解凍用のフォームの後ろにあるメニューフォームのボタンの上でマウスをクリックしますと、ボタンが押下されているような動きをみせ、圧縮解凍用のフォームを閉じると、それまで、メニューフォームの上でマウスでクリックした処理が動き出し、最後にはMagic自身が終了します。
直接関係あるか分かりませんが、下記のようなフォームになっています。
圧縮解凍用のフォームで、画面外をクリックしますと、圧縮解凍用のフォームは閉じられます。[ESC]キーを押下してもフォームは閉じるようにしてあります。[ESC]キーを押下した場合は、フォームは閉じるが、画面外をクリックするとフォームは閉じられないようにすることは可能でしょうか?
よろしくお願い致します。
メニューフォームから、コールプログラムで、圧縮解凍用のフォームを起動しています。圧縮解凍用のフォームで、ボタン押下後の処理で、互換性のレコードメインの中で、[mgtools.mgUnlha]を起動しています。
[mgtools.mgUnlha]第一パラメータのウィンドウハンドル
(winhwnd(x))のxには、[0](ゼロ)を指定しています。
この値ですと、圧縮解凍用のフォームのボタンなどの上でマウスでクリックしても、何も反応しないのでが、圧縮解凍用のフォームの後ろにあるメニューフォームのボタンの上でマウスをクリックしますと、ボタンが押下されているような動きをみせ、圧縮解凍用のフォームを閉じると、それまで、メニューフォームの上でマウスでクリックした処理が動き出し、最後にはMagic自身が終了します。
直接関係あるか分かりませんが、下記のようなフォームになっています。
圧縮解凍用のフォームで、画面外をクリックしますと、圧縮解凍用のフォームは閉じられます。[ESC]キーを押下してもフォームは閉じるようにしてあります。[ESC]キーを押下した場合は、フォームは閉じるが、画面外をクリックするとフォームは閉じられないようにすることは可能でしょうか?
よろしくお願い致します。
投票数:0
平均点:0.00
Re: mgtoolsを使用しましたフォルダの圧縮解凍について
msg# 1.2
yone
投稿数: 30
ちょっと勘違いしておりました。
該当タスク以外のウィンドウをクリックした場合でしたね。
第一パラメータ[winhwnd(0)]を
フレームウィンドウのハンドル値に変更した場合はどうでしょうか?
第一パラメータを[CallDLL ('USER32.GetAncestor','444',WinHWND(0),2)]に変更してみて下さい。
※詳しくはwinhwnd関数のヘルプをご覧下さい
該当タスク以外のウィンドウをクリックした場合でしたね。
第一パラメータ[winhwnd(0)]を
フレームウィンドウのハンドル値に変更した場合はどうでしょうか?
第一パラメータを[CallDLL ('USER32.GetAncestor','444',WinHWND(0),2)]に変更してみて下さい。
※詳しくはwinhwnd関数のヘルプをご覧下さい
投票数:1
平均点:10.00
Re: mgtoolsを使用しましたフォルダの圧縮解凍について
msg# 1.2.1
mysticage
投稿数: 77
yune さん、こんにちは。
教えていただきましたとおり
第一パラメータを[CallDLL ('USER32.GetAncestor','444',WinHWND(0),2)]
に変更しましたら、実現できました。ありがとうございます。
WinHWNDのヘルプを読みましたが、フレームウインドウのハンドル値を取得した場合は、上記の関数を使用するとなっていました。
使ったことのある関数は特にヘルプなどは見ませんので、まったく上記に事は知りませんでした。時間があるときにヘルプを見るのも大事かも知れませんね。
教えていただきましたとおり
第一パラメータを[CallDLL ('USER32.GetAncestor','444',WinHWND(0),2)]
に変更しましたら、実現できました。ありがとうございます。
WinHWNDのヘルプを読みましたが、フレームウインドウのハンドル値を取得した場合は、上記の関数を使用するとなっていました。
使ったことのある関数は特にヘルプなどは見ませんので、まったく上記に事は知りませんでした。時間があるときにヘルプを見るのも大事かも知れませんね。
投票数:0
平均点:0.00