• 締切済み
  • すぐに回答を!

タイマーオブジェクトを利用した時間の取得

今、卒研でVBを使ってよるのですが、そのプログラミングで悩んでいます。 タイマーを使って時間を取得しようと思い、パソコン画面右下の時間表示から取っているのですが、そうすると時間、分は表示できるのですが秒までは表示できません。 このやり方で秒まで表示できませんか? 違った方法でもVBを使って秒まで表示できるプログラミングがあったら教えてください。 VBを使って10分の1秒単位での時間の取得はできませんか? できたら2つのフォームにまたがって同じタイマーを使用したいのですが、何か方法はありませんか? すみません。 お願いします。

共感・応援の気持ちを伝えよう!

  • 回答数10
  • 閲覧数650
  • ありがとう数19

みんなの回答

  • 回答No.10
  • hyde-la
  • ベストアンサー率28% (42/146)

蛇足ながら補足です。 WindowsAPIで細かい時間を取得するには GetTickCount()と既に出ているマルチメディアタイマーが あります。 両方とも、Windowsが起動されてからどれくらい経過したか? をms単位で返します。 (だから現在時間を知るには役に立ちません) 一般的に正確なのはマルチメディアタイマです。 GetTickCountはWin95/98では55ms単位でしか解りません。 NTなら、マルチメディアタイマと一緒で正確です。 しかしマルチメディアタイマも BeginTimePeriodを呼び出してからでないとそんなに正確じゃありません。 詳細はMSDNをどうぞ。 引数なしの関数で、DWORDを返すだけですから VBからでも気軽に呼び出せます。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • タイマーオブジェクト(さらに質問)

    VBを使って10分の1秒単位での時間の取得はできませんか? できたら2つのフォームにまたがって同じタイマーを使用したいのですが、何か方法はありませんか? すみません。 お願いします。

  • カウントダウンタイマーでのタイマーの表示方法

    VBを始めたばかりなです。 プログラムで-していく、カウントダウンタイマーを作成したのですが、1:30と設定すると90秒表示となり、どうしても01:30という分と秒の表示が出来ません。 カウントされる数字が、何分何秒という表示にさせる方法を教えて下さい 表示のプログラムは以下の通りです。 hyouji.Text = Format(waitsecond, "##:##") ※hyouji.textはタイマーを表示させる部分の名前です。

  • タイマー関数について

    こんばんは。 この掲示板には大変お世話になっています。ありがとうございます。 [質問内容] およそ1ミリ秒単位で、待機することができる関数はあるのでしょうか? 私は、C言語を使用しているのですが、タイマー関数としてはSleep関数しか知りません。しかし、最近になってSleep関数は10ミリ秒待機することが限界ということをこの掲示板で知りました。 Windowsプログラミングに用意してある関数で1ミリ秒待機できる関数はありますでしょうか? 私は今、対処方法としてダミー処理をほどこすことでだいたい1ミリ秒のタイマーを作っています。 C言語もまだまだ初心者ですがよろしくお願いします。

  • 回答No.9
  • mnabe
  • ベストアンサー率33% (427/1283)

 んとねぇ私が気にしているのは...。  もし、使い方が、『機器制御で”正確に10分の1秒”単位で時刻が欲しい』って事だと、使うべきAPIが変って来るって思っただけです。  また、10分1秒単位(100ミリ秒単位)で、時刻が欲しいって事だとGetLocalTimeよりも、Timerオブジェクトのイベントで100ミリ秒を指定してイベントを待った方がよいのかなぁって思ったのです。  後は、時刻表示を100ミリ秒単位で行うって事も考えましたが...。  っとまぁいろいろ場面が想定出来るので、まずは何に使用したいのが知りたいのですよね。  そんでぇマルチメディアタイマーとは...(ちょっと説明が長くなりますが)  通常のWindowsAPI(SetTimer()関数 - 最高で1/18秒単位)よりも高精度と制御性能(ミリ秒単位)で大枚ベントをスケジュール出来るAPI群  但し、単純に現在時刻が欲しい場合には適しません。

共感・感謝の気持ちを伝えよう!

  • 回答No.8
  • haporun
  • ベストアンサー率40% (230/562)

mnabeさまの >精度が低くなります ・・・ご本人も10分の1秒と言っているし、そのコンピュータが正確な時間を刻んでいるとも限らないから、勘弁してくださいな。 ところでそのマルチメディアタイマーとは何者? ってこんなところで質問しちゃっていいのかな。

共感・感謝の気持ちを伝えよう!

  • 回答No.7
  • yoshioz
  • ベストアンサー率28% (10/35)

> yoshiozさん、Nowはステートメントではなく関数ですよ。 でしたぁ♪

共感・感謝の気持ちを伝えよう!

  • 回答No.6
  • mnabe
  • ベストアンサー率33% (427/1283)

haporun 様の回答への補足です。  GetLocalTime で取得出来る値は、1000分の1秒までは取得できますが、実際に動作させるパソコンの性能に依存して、100分の1秒以下の値は不正確な値になってしまします。且つ、VBで作成されたモジュールの場合には、100ミリ秒以下は精度が低くなります。  同じタイマーを使用したいとの事ですが、タイマーでイベントが欲しいとか、100ミリ秒単位に何かの機器の制御がしたいとか...なると、GetLocalTimeではちょっと処理が難しくなります。  何をしたいのかをもう少し補足下さい。  ちなみに、マルチメディアタイマーを使用すれば、VBでもある程度の精度でタイマを取得する事が出来ます。

共感・感謝の気持ちを伝えよう!

  • 回答No.5
  • haporun
  • ベストアンサー率40% (230/562)

VBだけではおそらくムリです。 APIのGetLocalTimeという関数を使うと、1000分の1秒単位で取得できます。 -------------------------------------- Public Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type Public Declare Sub GetLocalTime Lib "kernel32" Alias "GetLocalTime" (lpSystemTime As SYSTEMTIME) -------------------------------------- を標準モジュールの最も上に貼り付けると、この関数は使えるようになります。 例: -------------------------------------- Dim ST As SystemTime GetLocalTime ST MsgBox ST.wSecond + ST.wMilliseconds / 1000 -------------------------------------- などとやれば、現在の秒が1000分の1単位でわかります。

共感・感謝の気持ちを伝えよう!

  • 回答No.4
  • haporun
  • ベストアンサー率40% (230/562)

なんだかみなさん、同時に同じ質問に飛びついてしまいましたね。 運良く私が1番目だったようで。 yoshiozさん、Nowはステートメントではなく関数ですよ。 mnabeさん、mm:dd:ssでは月:日:秒になってしまうのでは?

共感・感謝の気持ちを伝えよう!

  • 回答No.3
  • mnabe
  • ベストアンサー率33% (427/1283)

よく見えないのですが...単純に Format$(Now, "mm:dd:ss") で、文字列で現在時刻の”時分秒”を取得できます。

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • yoshioz
  • ベストアンサー率28% (10/35)

現在の時分秒を持ってきたいだけなんですよね? そしたらNowステートメントを使うとDate型で 今日の日付から時分秒まで返ってくるので それを使えばいいと思います。 ためしにイミディエイトで「?Now」と 入力してEnterキーを押してみてください。

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • haporun
  • ベストアンサー率40% (230/562)

すみません、なんだかおっしゃる事が理解できないのですが。 タイマーというのはタイマーコントロール? 右下の~はタスクバーの時計? タスクバーの時計の表示方法を変えるソフトはあります。 プログラムのソースも公開しているそうです(Cでしょうが)。 時間を取得したいだけなら、Now関数を使えばよいのでは。 Format(Now, "hh:mm:ss")などとやれば、秒まで含んだ時間の文字列が出来上がります。 何か私が見当違いなことを言っているようなら、補足ください。

参考URL:
http://homepage1.nifty.com/kazubon/tclock/indexj.html

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • かなり細かい時間の取得

    現在、CGIがおそいな~とおもって、 どこが遅いのかをチェックするために、 timeをつかって、現在の秒をprintで表示しているのですが、timeが1秒の位までしか出さないので、 細かいのをループさせているため、どこが遅いか確認できていません。 実行時間を0.1秒単位、できれば0.001秒単位で確認する方法はないでしょうか?

    • ベストアンサー
    • Perl
  • ActiveX EXEとタイマーとVB

    いつもお世話になってます。 さっそく質問ですが、 ActiveX EXE側にタイマーとテキストボックスを持っています。 VB側のフォームにテキストボックスがあります。 VBからActiveX EXEを起動させ、決まった時間(例えば5秒おき)にVBのテキストボックスに ある文字を表示させる、ということがしたいです。 条件として、 VB側の動きは、 (1)最初のActiveXを起動 (2)ActiveXのSetとNothingだけしかしない                   しかしません。 なので、ActiveXからは「RaiseEvents」はしません。 ActiveX側で、タイマーイベント部分に、 ActiveXのフォームのテキストボックス.text = "文字" set △△ = ActiveXのフォームのテキストボックス (△△は、ActiveXのフォームのテキストボックスとしてセットされています。) のように、プログラムしてみたのですが、 VB側のテキストボックスに表示できませんでした。 尚、VB側は、ActiveX以外の処理があるので、途中からActiveXを起動させることになります。 この条件で、VBのテキストボックスに文字を表示させることはできますか? もしできるとしたら、どのような方法がありますか?? まだネットや本で調べ途中なので、もし何か参考ページがありましたら教えていただきたいです。 よろしくお願いします。

  • 家電製品のタイマー

    はじめまして。  家電製品のスイッチがONになる時間を秒単位でコントロールする方法を探しています。  母が経営する喫茶店で提供しているスムージーは家庭用のミキサーを使っているのですが、スイッチを入れて他の作業をしていたりすると混ぜすぎてしまう事が多いようで、「一定時間でスイッチが切れるようには出来ないのか?」と相談されました。  自分なりに探したところ、コンセントに接続するタイマースイッチは時間単位か分単位の物しかなく、秒単位のコントロールが可能な物ですと、工業用の機械に組み込むタイマーしかありませんでした。  そこで、何か良い方法があれば教えて頂きたいのです。良さそうな製品や、関連書籍(大学は機械科卒なので、ある程度は理解できると思います)など、どんな事でも構いません。宜しくお願い致します。

  • OUTLOOK フォームの情報の取得

    標題の件、 VBのプログラミングで、 Outlookのフォームの中身の情報を取得する方法って、 あるのでしょうか? メールの本文やアドレス添付ファイルの情報は、 MAPIをつかって取得できるのですが、 フォームの中身は取得方法は分かりません。 もしどなたかご存知でしたらお教え下さい。 参考URL等でも構いません。 よろしくお願いします。

  • VB2005で動画を再生する事はできますか?

    2ヶ月前にプログラミングを始めました。 初心者に使いやすいと聞いてVB2005を使っているのですが、 動画の再生という事は可能なのでしょうか? また、目的上、複数の処理を並立して行わせているのですが、 そのせいかタイマーを100ミリ秒単位で設定すると処理が遅れてしまいます。 私の使っているパソコンの処理が遅いのとも関係していると思うのですが・・・ 何かご意見あればお伺いしたいです。よろしくお願いします。

  • H8 3664 のタイマー

    こんにちは。皆さんに質問があります。 H8 3664F を使って、1/100秒の精度のストップウォッチを作っているところです。 標準で付いている32.768khzのクリスタルを使って、1秒、0.5秒 etc を作るところまでは出来たのですが、1/100秒が作り出せません。 自分はタイマーはAしか使ったことがない独学の初心者なのですが、どうすれば簡単に1/100秒(10ミリ秒)が作り出せるでしょうか? 1:16.12 (1分16秒12)という感じで表示したいです。 よろしくご教授お願いします。

  • VB2005のLABEL等のコントロールの表示速度がVB6時代よりかな

    VB2005のLABEL等のコントロールの表示速度がVB6時代よりかなり遅いように感じます。 実際遅いのですが、早くする方法はございますか? 例えば何もコードを書いていない新規フォームにLABELを80個ほど並べて実行しても LABELが右から左へぱらぱらと表示されますのでプログラムの影響ではないと思います。 表示は我慢するとして、タイマーで1秒周期でデータをファイルに書き込んでいるのですが表示が終わるまで タイマーイベントが待たされるようで、そのフォームの切り替えを何度か行うと1秒周期のデータ書き込みに に歯抜けがでる時がありこれが1番困っています。 改善策をご存知の方がいらっしゃいましたら宜しくお願いいたします。

  • ミリ秒を取得するには

    プログラムのレスポンスを計る為にミリ秒を取得のですが どうしても秒単位でしか取得できません。 何かいい方法はないでようか。

  • VB カウントダウンタイマーの作り方

    1か月前からVBの勉強を始めたものです。 下記のように、カウントダウンタイマーを作成したいですが やり方がわからないです。 1 From構成:   textBox1(時刻指定用),label1(カウントダウン表示用)、Button1(スタート用) 2 使用:   textBox1に "**:**"形で指定したい時間と分を入力して、Button1を押したら、label1内に今の時刻からのカウントダウンタイマーを表示される 3 カウントダウンが0になったら、何とかの形で知らせてくれる。  msgboxでもかまいません。 ネットでも調べましたが、自分のニーズに合わせるものを見つかりませんでした。~@~ どうぞ、よろしくお願い致します。

  • javascript カウントダウンタイマーについて

    下記のサイトのようなカウントダウンタイマーを作成したく 色々と検索してるのですが全然見つかりません。 http://www.countdownbooster.com/ このサイトのように100分の1秒まで表示させて 例えば期限を明日と数字で設定するのではなく サイトに訪れてから●日後や●分後を期限にしたいのです。 尚且つクッキーで期限が切れたら何度訪れても終了!と表示させたいのですが可能でしょうか? 下記のサイトが訪れてから1週間後に終了と表示されるサイトです。 http://www.successlab.jp/u25/full/ ※但し、100分の1秒まで表示されてません。 例えば7月31日と指定して 残り8日と●時間●分●秒●と 表示出来るJavaScriptはあるのですが 上記のような全てを満たすJavaScriptがありません。 ご存じの方がいたら是非、力をお貸し下さいませんか? 宜しくお願い致します。