dポイントプレゼントキャンペーン実施中!

ウィンドウズを起動してからの経過時間取得のプログラムは下記ようになったのですが・・・VBでつくったフォームを開いたと同時にカウントされるようにコーディングしたいのですがどうしたらよいのでしょうか?

例) Aという名前のフォームを開くと「OO時間OO分OO秒経過」という風にそのフォームのステーラスバーに出そうとしています。

Private Declare Function GetTickCount Lib "kernel32.dll" () As Long

Private Sub Timer1_Timer()
Dim RetCount As Long
Dim h As Integer, m As Integer, s As Integer, ms As Integer
RetCount = GetTickCount 'ミリ秒単位で返ってきます
'
h = RetCount \ 1000 \ 60 \ 60
m = RetCount \ 1000 \ 60 - h * 60
s = RetCount \ 1000 - (h * 60 * 60 + m * 60)
ms = RetCount Mod 1000

Label1.Caption = "経過時間 " & Right(("0" & h), 2) & ":" _
& Right(("0" & m), 2) & ":" & Right(("0" & s), 2) & "." _
& Right(("00" & ms), 3)
End Sub

A 回答 (3件)

下記で参考になるところがあれば、使ってください。


Dim t1
Private Sub Form_Load()
Form1.Timer1.Interval = 5000
Form1.Timer1.Enabled = True
Form1.Visible = True
Form1.Print Time() & "スタート"
t1 = Timer
End Sub
Private Sub Timer1_Timer()
t2 = Timer
Form1.Print Int(t2 - t1) & "秒経過"
End Sub
実行すると11:12:20スタート
5秒経過
10秒経過
とかがフォームに出ます。
ただたまに4秒経過になったりしますが、私のタイマーの理解不足です。

この回答への補足

時間のカウントをはじめることは難しいのですか?

補足日時:2003/01/13 22:53
    • good
    • 0

#2のものです。


http://homepage3.nifty.com/salv/v_sickhack/02/v_ …
のようなURLを見つけました。
補足にお書きになったことが理解できないんですが。済みません。

この回答への補足

参考になります(>_<)ありがとうございます

補足日時:2003/01/14 00:08
    • good
    • 0

イベントハンドラForm_Loadが実行された時の、GetTickCountの値をフォームのメンバ変数に保持しておいて、


Timerの方では、そいつを引いたものを経過時間とするとか。
大雑把ですが。
    • good
    • 0
この回答へのお礼

なるほど!ためしてみます!!ありがとうございます

お礼日時:2003/01/13 18:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!