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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0807
mmタスクバーにタイトルが残る12解決


mm

リンク

2008/8/7(Thu) 08:34:18|NO.17945

exeファイル終了後もwindows最下段のタスクバーにタイトルが消えません。
LET'sHSPICでアイコンを書き換えたものも、カップスープアイコンの時でもあります。
スクリプトはきちんとendで終了させています。
皆さんにはそういうことが無いですか?



この記事に返信する


エレキ掃除機

リンク

2008/8/7(Thu) 15:00:29|NO.17957

>LET'sHSPICでアイコンを書き換えたものも、カップスープアイコンの時でもあります。

Let's!HSPIC!のホームページより

アイコンの書き換え処理にリソースエディタ 「Resource Hacker」(フリーウェア) を利用するので、公式サイトより 日本語翻訳版 (Japanese/約580KB) を別途入手してください。




p

リンク

2008/8/7(Thu) 16:20:56|NO.17963

>>エレキさん
それ関係なくね?

>>本題
いままでそういう体験したことは無いです。
再現できるスクリプトを提示してくれれば
何でなのか回答しやすいかと。



mm

リンク

2008/8/7(Thu) 17:32:56|NO.17966

今まで気づかなかったけど、こんな短いプログラムでもタスクバーにタイトルが残るんです。
これはもう私のXPがいかれてるんですかね。でも、メモ帳やエクセルなどはきちんと消えるし。
メモ帳とHSPexeを交互に起動・終了、続けて起動・終了した場合でも、メモ帳は必ず消える。
HSPはほとんど残っています。


*start defdir="c:\\" title "test" screen 0,320,480,8,50,50 pos 10,445 objsize 300,24 : button "い   い   え",*prgend4 stop *prgend end *prgend4 gsel 0,2 : cls //いくつかの処理 pos 10,280:objsize 300,36 : button "終      了",*prgend stop



リチャ

リンク

2008/8/7(Thu) 17:57:09|NO.17967

確かにexeにしてからだとなるね
(ちなみにタスクバーをクリックすると消える)
暗黙の約束としてwaitを一定時間しなかったらいけなかった気がする
(確かwin2000におけるスクリーンセーバーのための処理)
適当にループにウェイト入れてみて

とりあえず*startの下に

repeat 20 wait 0 loop
を入れると消えた



inovia

リンク

2008/8/7(Thu) 18:44:19|NO.17970

タスクを監視してみましたが、
タスクバーに残っている場合でもプロセス自体は終了しているみたいです。

関連性は分かりませんが、
ツールウィンドウを使った時に頻発してこの現象が起きるようです。


screen 0,320,480,8



リチャ

リンク

2008/8/7(Thu) 19:08:24|NO.17971

見当外れレスすみません
(やっぱ駄目だ……消えたり消えんかったりするorz)

ツールウィンドウは元々タスクバーに表示されないため
単体だとおかしくなるんじゃないでしょうか?

先頭に #packopt hide 1 をいれて screen 0,10,10,2,0,0 screen 1,320,480,8,50,50 では駄目?(タスクバーに出ませんが)



Mimura

リンク

2008/8/7(Thu) 20:00:44|NO.17972

本当にどうでもいいことですけど、
手持ちのWindows で調べてみました。

・Win98
「閉じる」ボタン 右上の閉じるボタン どちらでも発生
タスクバーの該当する部分をクリックしない限り消えない。

・Win2000
「閉じる」ボタン 右上の閉じるボタン どちらでも発生
他のウィンドウが開かれるか、タスクバーのどこかをクリックすれば自動的に消える。
勿論、該当する部分をクリックしても消える。

・WinXP
右上の閉じるボタンのみで発生
他のウィンドウが開かれるか、タスクバーのどこかをクリックすれば自動的に消える。
勿論、該当する部分をクリックしても消える。

・WinVista
発生せず。

という状況でした。
Vista ではWindows のカーネルから書き直ししていると聞きますので、
そのあたりが修正されているのかもしれません。

onexit などで暗黙的に gsel 0,-1 で非表示にする必要があるのかもしれません。



やみねこ

リンク

2008/8/7(Thu) 20:49:41|NO.17977

詳しくは分からないのですが、

プロセスが終了しているのに、窓が残るという事は、
(普通有り得ないけど)WinMain(プログラム本体)が終了したのに
WinProc(ウインドウをコントロールするプログラム)が
終了していない状態では無いかと思いました。

そう考えると、ツールウインドウの作り方とかが関係してきて…
OPEN HSPで調べましょう…という事になってしまうかもれないなぁと思いました。

おそらく、WinMainとWinProcの間のメッセージが
上手く伝わっていないのではないかと想像します。



S&R

リンク

2008/8/8(Fri) 06:35:52|NO.17983

WinMainとWinProcとは何ですか?



mm

リンク

2008/8/8(Fri) 08:43:33|NO.17984

みなさん、ありがとうございます。
inoviaさんがおっしゃるように、screen画面モードを0にすれば、この現象は出ません。
ツールウィンドウにこだわらず、通常モードで進めます。

私的には解決としますが、もはや私の手を離れレス内で質疑があります。
しばらくおいて、後日解決チェックしに来ます。



やみねこ

リンク

2008/8/8(Fri) 13:23:55|NO.17993

>S&Rさん

説明不足で、すいません

ウィンドウズのプログラムをC++で作るときの呼び名です。
HSPには直接は関係有りません。

WinMainは、HSPで言えばプログラム本体を意味していて、プロセスとして表示されます。
WinProcは、HSPで言うところの「Screen」の動きをプログラムする部分を言う言い方の一つです。
(右上の終了ボタンとか、ドラッグドロップで移動させるだとか)

WinProcは、WinMain(メインプログラム)内でウインドウセットで登録し作成されるので、
まあ、HSPみたいにScreenされると、ウインドウと一緒に作られると考えてください。

WinMainには、ユーザーの触る部分(ウインドウ)がありませんので、
(たぶん)WinProcをすぐに作らないと終了できなくなってしまうので、
HSPでは、プログラムの開始と同時にScreen 0を作っているようです。

その特殊なウインドウに、Screen 0でツールウインドウを指定すると、
あとから、「タスクバーに表示されない」
属性を適用しているのでは無いかと想像しました。
(HSPのソースを当たってないので、想像ですが)

当然ツールウインドウと、標準のウインドウは作りが違うので、
途中でタスクバーの管理は放置され残ってしまい

後で異変に気がついたWindowによって、削除されている可能性があると思います。
(突然落ちたツールで、よくある現象)



mm

リンク

2008/8/9(Sat) 20:08:49|NO.18018

みなさん、ありがとうございました



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