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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
1010
yeah外部プロセスからの最小化無効2解決


yeah

リンク

2013/10/10(Thu) 21:06:43|NO.57555

外部プロセスからの最小化無効なんてできますか?


/*プロセス全最小化*/ newcom shell, "Shell.Application" if varuse(shell) == 0 : end shell->"MinimizeAll" delcom shell stop

↑こんな感じで組まれたプログラムから最小化を回避したいです。

一度最小化されるがすぐ最大化に戻す みたいなものでもありがたいです。



この記事に返信する


test

リンク

2013/10/10(Thu) 21:46:36|NO.57556

ウィンドウが最小化されたことを検知するにはウィンドウメッセージを使います。
#define  WM_SIZE          5
#define WM_SYSCOMMAND 0x0112 oncmd gosub *syscom,WM_SYSCOMMAND oncmd gosub *size,WM_SIZE stop *syscom uCmdType=wparam&0xFFF0 if uCmdType==0xF020{ mes "最小化ボタンが押されました" } return *size if wparam==1{ mes "最小化されました" }else{ mes "たぶん最小化から戻りました" } return
最小化時にくるメッセージには2種類あり、ウィンドウ右上の最小化ボタンが押された時にはWM_SYSCOMMANDが、実際に最小化されたときにはWM_SIZEが来ます。
MinimizeAllでの最小化時はWM_SYSCOMMANDが来ないので、ユーザーが自分で最小化したのと区別できます。
最小化を阻止するのは難しいので、最小化されたらWM_SYSCOMMANDを自分に送ってウィンドウを戻せばいいかと思います。

ただしこの方法はMinimizeAllには対応できますが、WM_SYSCOMMANDを送ってくるようなソフトには対応できないので注意しましょう。
WM_SYSCOMMANDを送ってくるソフトにも対応したければ、ウィンドウのシステムメニューから最小化を削除した上で独自の最小化ボタンを用意し、普段はWM_SIZEを監視して最小化されたら戻すようにし、ユーザーが最小化ボタンを押した時だけ最小化されても戻らないようにするといいかもしれません。



yeah

リンク

2013/10/10(Thu) 22:05:28|NO.57558

ありがとうございますー
無事解決しました



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