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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0428
Yuuki最小化するとダイアログが表示されない7解決


Yuuki

リンク

2017/4/28(Fri) 16:59:44|NO.79337

最小化するとダイアログが表示されません。
どうすればいいでしょうか...

元に戻すとダイアログが表示されます。

#uselib "user32.dll" #cfunc IsIconic "IsIconic" int #func OpenIcon "OpenIcon" int *main wait 1 if IsIconic(hwnd)=1:dialog "最小化されました。" goto *main



この記事に返信する


スペース

リンク

2017/4/28(Fri) 17:55:45|NO.79338

こちらの環境では問題なく表示されます。
windows10 64bit Homeです。
https://gyazo.com/3085af8c4ce04ffa01025147429981b9



いののて

リンク

2017/4/28(Fri) 19:10:24|NO.79339

Windows 7 Professional SP1 でも表示されました。

最小化時でもダイアログを確実に表示させる方法は、
dialog命令の代わりにMessageBox関数を使い、親ウィンドウ引数に0を指定することです。
そうすれば、どの環境でも表示できると思います。

#uselib "user32.dll" #func MessageBox "MessageBoxA" int,sptr,sptr,int MessageBox 0,"最小化されました。","",0



 

リンク

2017/4/28(Fri) 19:27:08|NO.79340

これでどうでしょう。

#uselib "user32.dll" #cfunc IsIconic "IsIconic" int #func OpenIcon "OpenIcon" int #func MessageBox "MessageBoxA" int,str,str,int *main wait 1 if IsIconic(hwnd)=1:MessageBox 0,"最小化されました。","",64 goto *main



Yuuki

リンク

2017/4/28(Fri) 19:48:43|NO.79341

ありがとうございました!!



Yuuki

リンク

2017/4/28(Fri) 19:50:34|NO.79342

すみません
3行目の

#func OpenIcon "OpenIcon" int
は不要です。



優師¿(plugin)

リンク

2017/4/29(Sat) 12:37:52|NO.79359

最小化したらダイアログは出るけど
ウィンドウを通常の位置とサイズに復元しないとダイアログが消えなかったので
ダイアログが出たら自動的にウィンドウを通常の位置とサイズに復元するようにしました。

■命令 SetRestoreWindow

■説明 ウィンドウを通常の位置とサイズに復元します。


#uselib "user32.dll" #cfunc IsIconic "IsIconic" int #func MessageBox "MessageBoxA" int,str,str,int #define SetRestoreWindow sendmsg hwnd,$00000112,$0000F120,0 repeat -1 if IsIconic(hwnd) = 1 { MessageBox 0,"最小化されました。","お知らせ",64 SetRestoreWindow } await 1 loop



Yuuki

リンク

2017/4/29(Sat) 21:17:43|NO.79370

優師¿(plugin)さん。ありがとうございます。
ですが、このままだとダイアログがウィンドウに隠れてうまく表示できなかったので、

#uselib "user32.dll" #cfunc IsIconic "IsIconic" int #func MessageBox "MessageBoxA" int,str,str,int #define SetRestoreWindow sendmsg hwnd,$00000112,$0000F120,0 #define MB_SETFOREGROUND 0x00010000 repeat -1 if IsIconic(hwnd) = 1 { wait 10 MessageBox ,"最小化されました。","お知らせ",64|MB_SETFOREGROUND SetRestoreWindow } wait 1 loop
にすればちゃんと表示されました。



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