Windowsの連続起動時間を表示するプログラムを作りたいのですがどのようにしたらいいでしょうか?
Vistaはタスクマネージャーから、XPのProはコマンドから起動時間を見る事は出来ますが、あいにくHomeという事なので練習も兼ねて作ってみたいと思った次第です。
関数としては、timeGettime()の制度がいいみたいなのでこれを使おうと思うのですが、単位はミリ秒で取得すると書いてありました。
また、47.1日を過ぎると桁あふれで戻ってしまうと聞きました。
ネットでいろいろ調べたのですが、fpsの測定に利用されてるみたいでサンプルもありましたが、純粋に起動時間を表示するならどのようにしたらいいでしょうか?
timeGettime()自体がWindowsが起動してからの時間をミリ秒で返すのは分かっていますが、47日を超える起動でも正常にカウントするようには出来ないものでしょうか?
サンプル的なものを教えていただければ大変助かります。
初心者のレベルなので何卒よろしくお願いします。
ちなみに、VisualStudio2008のC言語を使用しています
No.2ベストアンサー
- 回答日時:
★アドバイス
>47日を超える起動でも正常にカウントするようには出来ないものでしょうか?
↑
Windows Vista から次の API が利用可能になりました。
GetTickCount64(http://msdn.microsoft.com/en-us/library/ms724411 …
・Windows Vista 以前では利用できませんので回答者No.1さんのアドバイスにある
QueryPerformanceCounter 関数を利用して下さい。こちらは 64 ビットの整数です。
よって 47 日以上でも正常に取得可能。
サンプル:
LARGE_INTEGER i64Count;
DWORD i32Count;
// 起動経過時間(64Bit)
QueryPerformanceCounter( &i64Count );
// 起動経過時間(32Bit)
timeBeginPeriod(1);
i32Count = timeGetTime();
timeEndPeriod(1);
i64Count⇒64ビット整数(i64Count.QuadPartを参照)
i32Count⇒32ビット整数
64ビット整数の共用体
(http://msdn.microsoft.com/en-us/library/aa383713 …
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart; // 符号付きの32ビット整数(下位)
LONG HighPart; // 符号付きの32ビット整数(上位)
};
struct {
DWORD LowPart; // 符号付きの32ビット整数(下位)
LONG HighPart; // 符号付きの32ビット整数(上位)
} u;
LONGLONG QuadPart; // 符号付きの64ビット整数
} LARGE_INTEGER, *PLARGE_INTEGER;
No.1
- 回答日時:
QueryPerformanceCounterで取得するとか。
http://www.google.co.jp/search?hl=ja&q=QueryPerf …
NTイベントログから起動メッセージを検索して、そこから起動時間を計算する手も。
http://www.google.co.jp/search?hl=ja&q=eventlog+ …
回答ありがとうございます。
>QueryPerformanceCounter
↑こんな関数が!
ありがとうございます。
さっそくリンクから見に行かせてもらいます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows Vista・XP windows xp proが起動しなくなりました 10 2022/05/20 00:49
- CPU・メモリ・マザーボード 起動時にF1を要求されます。 2 2023/01/22 12:55
- デスクトップパソコン 突然PCの画面が真っ黒になりグラボ?かCPU?のファン?ブン回りの症状は?? 7 2023/05/26 12:56
- C言語・C++・C# win10で、正確な待ち時間の作り方 6 2023/02/14 18:28
- マルウェア・コンピュータウイルス Windows のセキュリテイーでウィルスが 3 2022/12/02 12:50
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- デスクトップパソコン windows7を使っているパソコンでの質問です。先日動作が遅く再起動かけると「windowsを起動 9 2022/06/16 21:31
- その他(ソフトウェア) プータブルUSB起動について 4 2023/06/25 10:58
- Windows 10 Windows 10でBIOS画面が表示されなくなった 9 2022/06/26 08:13
- BTOパソコン パソコンの起動時間 5 2022/10/06 17:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アウトルックが起動しているか...
-
リムーバブルディスクのフォー...
-
VBAでOutlookを終了させたい Ex...
-
Internet Explorer にURLを引...
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
-
wordのマクロからexcelの起動
-
WinSCPで画像のように puttyを...
-
VBで別のプログラムを起動し他...
-
ダブルコーテーションで3度も...
-
キー操作 (WSH:コピー&ペー...
-
フォームの最前面が効かない
-
Internet ExplorerをC言語プロ...
-
別アプリの起動、終了について
-
VB6で呼び出し元の情報を取得す...
-
Shellで起動したプログラムのウ...
-
VBSで起動したアプリが前面表示...
-
exeファイルを実行するとすぐに...
-
VBAでSeleniumからChromeを起動...
-
vba 時間の引き算 例えば 15:00...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アウトルックが起動しているか...
-
VBAでOutlookを終了させたい Ex...
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
-
VBSで起動したアプリが前面表示...
-
VBで実行中のEXEファイルの情報...
-
キー操作 (WSH:コピー&ペー...
-
EXCEL VBAから他アプリケーショ...
-
Process.Startで起動したアプリ...
-
VBAでSeleniumからChromeを起動...
-
64bitで作ったEXEを32bitで起動...
-
ACCESS VBAで別のACCESS(mdb)を...
-
「FindWindow」、ウィンドウハ...
-
VBAでIEが起動しているか...
-
Shellで起動したプログラムのウ...
-
VBSでExcelのUserFormをエクス...
-
Vba アプリケーションが立ち上...
-
exeファイルを実行するとすぐに...
-
フォームの最前面が効かない
-
別アプリの起動、終了について
おすすめ情報