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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0609
なぬプログラムを実行しながらカウント2未解決


なぬ

リンク

2022/6/9(Thu) 17:48:40|NO.96612

他のプログラムを実行しながら指定した時間になったらウィンドウメッセージを送る方法が
わからず困っています。裏でカウント(指定した時間で行動)できるような命令を教えてくれませんか?



この記事に返信する


とあるプログラマ

リンク

2022/6/9(Thu) 19:00:24|NO.96614

SetTimerで指定ミリ秒後に動作することが可能です

http://chokuto.ifdef.jp/advanced/function/SetTimer.html


#include "user32.as" #define WM_TIMER $00000113 #define NULL $00000000 #enum ID_TIMER_1 = 1 screen 0 oncmd gosub *WMTIMER, WM_TIMER SetTimer hwnd, ID_TIMER_1, 5000, NULL dim sec dim dsec repeat redraw 0 color 255, 255, 255 boxf color 0 sec = cnt / 10 dsec = cnt \ 10 pos 0, 0 mes "" + sec + "." + dsec + "秒" redraw 1 await 100 loop stop *WMTIMER // KillTimer しないとタイマーは止まらない // 特に dialog などで停止するときはタイマーを止めないと // 指定秒毎にここにきて dialog が増殖するので注意 KillTimer hwnd, ID_TIMER_1 dialog "5秒経ちました" return


また modclbk3 を使えば複数のタイマーに対応できます


#include "user32.as" #define WM_TIMER $00000113 #define NULL $00000000 #include "modclbk3.hsp" #enum ID_TIMER_1000 = 1 #enum ID_TIMER_750 // ラベルをプロシージャにする newclbk3 hTimer1000, 4, *TIMER1000 newclbk3 hTimer750 , 4, *TIMER750 screen 0 onexit goto *exit // 1秒ごと SetTimer hwnd, ID_TIMER_1000, 1000, hTimer1000 // 0.75秒ごと SetTimer hwnd, ID_TIMER_750 , 750 , hTimer750 dim count1000 dim count750 repeat redraw 0 color 255, 255, 255 boxf color 0 pos 0, 0 mes "1秒経過数: " + count1000 mes "0.75秒経過数: " + count750 redraw 1 await 100 loop stop *TIMER1000 count1000++ return *TIMER750 count750++ return *exit KillTimer hwnd, ID_TIMER_1000 KillTimer hwnd, ID_TIMER_750 end



窓月らら

リンク

2022/6/9(Thu) 19:07:12|NO.96615

既に出てたけど、どうぞ。

#uselib "user32.dll" #func SetTimer "SetTimer" int,int,int,int #func KillTimer "KillTimer" int,int #define WM_TIMER 0x0113 #define ID_TIMER 1 // タイマーID ms=1000 // 1秒 SetTimer hwnd,ID_TIMER,ms,0 oncmd gosub *OnTimer,WM_TIMER onexit goto *exit repeat redraw 0 color: boxf: color 255,255,255 pos 8,8: mes "cnt="+cnt+" OnTimer="+ot redraw 1 await 16 loop *OnTimer ot++ return *exit dialog "終了します。" KillTimer hwnd,ID_TIMER end



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