したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

290DOSD:2005/09/15(木) 22:28:52
タイマー関数をあまり知らない私が横から申し訳ないのですが
タイマーは取りこぼしがたまにあると記憶しておりますが…

5分に1回何かを実行ならタイマーで5分間をカウントするのでは無く
タイマーで何秒に1回時間(TIME$)を確認し該当時間以上になったら実行
の様な処理にした方がいいかも知れません

該当時間以上というのは…

>10時05分10秒
IF TIME$="10:05:10" … では無く
IF TIME$>="10:05:10" … にした方がよろしいかと…
(パソコンの処理速度不足で "10:05:10"を拾えず "10:05:11"の時に実行出来る用にする為)

TIME$では無いのですがMILLITIMEを使って行ってみてます
(MILLITIMEは日付変わると0に戻りますのでご注意を)

ISTART=INT(MILLITIME/1000)
IEXECTIME=ISTART+(60*5)

WHILE 1
 IF IEXECTIME>=INT(MILLITIME/1000) THEN
 ' ↑IEXECTIME=INT(MILLITIME/1000) では無いのを確認して下さい
  '(60*5)秒に1回行う処理をここへ
  IEXECTIME=IEXECTIME+(60*5)
 ENDIF
WEND

-----
タイマーを使うのなら1秒に設定し…

NXTIME$="10:05:10"
'↑実際にはTIME$から5分後を作るルーチンが必要です

Private Sub Timer1_Timer()

IF NXTIME$>=TIME$ THEN
  If hWndIE <> 0 Then Ret = PostMessage(hWndIE, &H111, &HA220, 0) 'IE更新

'// 次に実行する時間(NXTIME$)の更新の処理 //
NXTIME$="10:10:10"
'↑実際にはNXTIME$に5分後をプラスするルーチンが必要です

End Sub


nisiiさんが紹介していたMSのサイトより…
>間隔が厳密に時間どおりに経過することは保証されていません。
>正確さを保つには、内部で蓄積された時間を追跡する代わりに、
>必要に応じてシステム時計をチェックします。

私には「時間通りは無保証です。システム時計でチェックして下さい」に見えます(笑


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板