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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0420
HK2title命令で変更できなくする4解決


HK2

リンク

2014/4/20(Sun) 17:48:07|NO.61607

3.32で動作する、title命令を無効にするスクリプトを組んでみました。
他のバージョンで動くかどうかは不明です。



#module *settext if(flag(ginfo_sel)):t(ginfo_sel)=t(ginfo_sel) return #deffunc hardTitle str p1 t(ginfo_sel)=p1 flag(ginfo_sel)=1 title p1 oncmd gosub *settext,0x000C return #deffunc hardTitleRelease flag(ginfo_sel)=0 return #global screen 1 screen 2 gsel 0 hardTitle "このタイトルはtitle命令で変更できません。" title "変更できましたか?" gsel 1 title "このウィンドウ(1)はtitle命令で変更できます。" gsel 2 hardTitle "このウィンドウ(2)はtitle命令で変更できません。" title "どうでしょう。" gsel 0 title "やっぱりできません。"



この記事に返信する


HIJIKI

リンク

2014/4/20(Sun) 18:57:41|NO.61609

面白い発想ですね。
どういったシーンで使えばよいかが思いつかないですが、
こういうのもあるんだなあと勉強になりました。



goupon

リンク

2014/4/21(Mon) 01:48:35|NO.61613

単にWM_SETTEXTのメッセージを制御してるだけかと思ったら全然違った。
これはバグを利用してるんですね。
メッセージ割り込み中に行った動作で内部のパラメーターを保持してるメモリを上書きしてますね。

oncmd gosub *settext,0x000C title "タイトル" stop *settext mes "上書きされちゃった" return



YSR

リンク

2014/4/21(Mon) 08:49:43|NO.61616

HSP3.4 beta3で実行すると、
「やっぱりできません」
「このウィンドウ(1)はtitle命令で変更できます。」
「どうでしょう。」
と出ました。……実行失敗なんですかね?



HK2

リンク

2014/4/26(Sat) 19:37:51|NO.61701

YSRさん

遅くなりましたが、
gouponさんのおっしゃる通り、バグを利用しているのでバージョンが異なると動作が変わることがあります。
HSP3.4ではtitle命令の内部処理が変わったため、私のスクリプトが動作しなかったのだと思います。



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