ja ja ja ja ja ja ja fr de pl ja fr pl en ja ja ja ja en ja en en pl ja en fr ja fr nl en en ja ja ja ja ja ja ja ja lmo ja te ja fr en ja ja ja en ja ja ja ja ja en ja ja pl ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja en ja ja ja ja ja ja pl ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja uk en nl ja en ja fi en ja en kn en ja en en en pl ja en en en ja ja ja pl ja fr kn az fr ja fr en en en pl en ja ja ja ja ja ja ja ja ja ja pl en ja ja ja ja ja en
if stat = 7 : return
*dupexec ;初回起動ウィンドウが二重起動通知を受けたときの処理 gsel 0,1
上記のように、二重起動通知を受けたときの処理に
gselでの再表示を追加すればどんどんプロセスが増えることはなくなります。
もしくは、タスクバーに表示されたままでもいいのなら
onexit処理内で最小化してあげてもいいかもしれません。
sendmsg hwnd, $112/*WM_SYSCOMMAND*/, $F020/*SC_MINIMIZE*/
//もしくは、そういうソフトならタスクトレイかな。
//「タスクトレイ モジュール hsp」あたりで検索すれば色々とモジュールがありそうです。
2014/3/15(Sat) 21:13:15|NO.60691
テンクスさま、MIZUSHIKI さま
ご返信頂きましてありがとうございます。
アラームの時間になったらもちろん「gsel 0,2」でウィンドウを表示するつもりです。
例えば、アラームを20時に鳴らすとしたらその時点で「gsel 0,2」でウィンドウを表示するのですが、アラームの前の18時台や19時台にメインウィンドウを表示して時計を見ようとすることもあると思います。
アラームの時間がくる前の現在時刻の確認の時に、非表示にしてあるメインウィンドウををどうやって表示したら良いでしょうか? という質問でした。
>MIZUSHIKI さま
もう一度 .exe ファイルを実行した際に再表示する方法もありますね!
その方法でいきたいのですが、
具体的には http://hsp.tv/play/pforum.php?mode=pastwch&num=18983 で掲載されているスクリプトのどの部分が必要になるでしょうか?
プログラムを見てみましたが、どの行でどのような処理が行われているか分かりませんでした。
宜しくお願い致します。
それから、ウィンドウ最小化(タスクバーに残る)を取り入れるとしたら sendmsg hwnd, $112,$F020 をどの部分に書くと良いのでしょうか?
この sendmsg hwnd, $112,$F020 をウィンドウ非表示と差し替えれば良いのでしょうか?
2014/3/15(Sat) 21:31:01|NO.60692
あ、そう言う事でしたか。
アイデアならいくつかあります。
・画面右下に小さく表示して、クリックすると詳しく表示させる
・ショートカットキーを作り、ショートカットキーにより表示
・画面右下の「通知領域?」に収納(これに関しては詳しくないです。ごめんなさい。)
2014/3/15(Sat) 23:28:40|NO.60695
テンクスさま、MIZUSHIKI さま
ご返信頂きましてありがとうございます。
お二方に心より感謝しています。
ショートカットキーを作って、非表示の状態からそのショートカットキーで表示させようとしましたが、どうしても非表示のままになり、表示されませんでした。
通知領域(タスクトレイ)に格納するという方法もありますね、MIZUSHIKI さまも同様のアドバイスを下さって調べています。
>MIZUSHIKI さま
よく考えたら、ソフトウェアの中でも時間に関わるものは非表示にするよりタスクバーに置いておいて、Alt+Tab のキーですぐに表示できるようにしておいたほうがいいですね!
ウィンドウの最小化というアイデアは、MIZUSHIKI さまに助言を頂くまで、わたしは全く思いつきませんでした。
良い勉強になりました。
本当にありがとうございました。
この方向で実現した場合、次のようにするとうまくいきました。(最小化されて、タスクバーに入ったことを忘れて実行ファイルをまた実行してしまう可能性もありますが、助言下さった中の二重起動防止も参考にしながら次のように作ってみました。)
本当にプログラムを終了したい時には Ctrl+Shift+Q のキーを押すと完全にソフトが終了するようにしています。
--- ソースプログラム ---------------------------------------------------
#include "kernel32.as"
#define ERROR_ALREADY_EXISTS $B7
; 適当なユニーク文字列を与える
CreateMutex 0, 0, "ourClock"
GetLastError
if stat = ERROR_ALREADY_EXISTS {
dialog "既に起動されています。", 1, "お知らせ"
screen 0,400,200,0
title "テストウィンドウ"
onexit gosub *hihyouji
color 0,0,255 : boxf
// ここではアラームや時報の付いた時計を表示する
onkey gosub *pushkeys
getkey keyCTL,17 ; Ctrlキー
getkey keySHIFT,16 ; Shiftキー
getkey keyQ,81 ; Qキー(抜けるという意味)
if keyCTL=1&keySHIFT=1&keyQ=1 {
dialog "本当に時計を終了しても宜しいですか?", 2, "終了確認"
if stat = 6 : end
dialog "ウィンドウを非表示にしても宜しいですか?", 2, "非表示の確認"
if stat = 7 : return
sendmsg hwnd, $112, $F020
------------------------------------------------------------------------
2014/3/16(Sun) 11:23:21|NO.60704
タスクトレイにアイコンを入れるプログラムもも『HSP サンプル蔵(システム操作編)- HSP Next』のページ(http://hspnext.com/hspkura/hspkura02.htm)を参考にしながら、作ることができました。
このページのサンプルでは[タスクトレイに格納]というボタンを押すとタスクトレイに入るようになっていましたが、この部分を、終了操作時にタスクトレイに入れる(onexit gosub *modecmd)というプログラムにして *modecmd から stop までと *trayico から return までをプログラムの末尾に持っていきました。
再びウィンドウを画面へ表示する為の *OnMotificmd から return までと *icondel から return までの部分も並べてプログラムの後ろのほうに書きました。
又、#module 〜 #global にあたる部分は module.hsp というべつのファイルにしてインクルードしました。(煩雑なプログラムになることを避ける為。)
これできちんとタスクトレイに入るようになりました。
MIZUSHIKI さま,テンクスさま、タスクトレイ(通知領域)に入れる方法を調べると良いといった助言を下さいましてありがとうございました。
お陰様で様々なことを実現することができました。
大変良い学びになりました。
お礼と感謝の気持ちでいっぱいです。
本当にありがとうございました。
2014/3/16(Sun) 11:37:25|NO.60705
ウィンドウを非表示にしている状態で新たに同じプログラムを実行ファイルから実行した場合に、二重起動しない方法は分かりましたが、この時に、非表示にしている最初の初回起動のウィンドウを自動的に表示させる方法は分かりませんでした。
今回は、最小化されている(又はタスクトレイに入っている)ものを、手動で表示しても大丈夫ですが、また必要がありましたら調べてみてそれでも分からないようでしたら質問させて頂きたいと思っています。
その際にはどうぞ宜しくお願い致します。
トップ | HSP3ダウンロード | HSPTVで遊ぶ | HSPで作る | サイト情報 | プライバシーポリシー | お問合せ
ONION software Copyright 1997-2021(c) All rights reserved.