質問編集履歴
1
高速スタートアップ環境の場合の値について修正・追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,25 +3,26 @@
|
|
3
3
|
|
4
4
|
### 作成したソース(2パターン)
|
5
5
|
|
6
|
+
下記2つの方法を試しましたが
|
7
|
+
いずれも高速スタートアップが有効になっている環境だと
|
8
|
+
想定した起動日時を取得することが出来ません。
|
9
|
+
高速スタートアップの場合は値がリセットされていない。
|
6
10
|
```C#
|
7
11
|
ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
|
8
12
|
ManagementObjectCollection moc = mc.GetInstances();
|
9
13
|
foreach (ManagementObject mo in moc)
|
10
14
|
{
|
11
|
-
mo["LastBootUpTime"]; // この値を起動日時として取得
|
15
|
+
mo["LastBootUpTime"]; // この値を起動日時として取得(20190319143723.500000+540)
|
16
|
+
// この値が高速スタートアップ環境の場合はシャットダウンで値が更新されない為、前回再起動時の日時となる
|
12
17
|
}
|
13
18
|
```
|
14
19
|
```C#
|
15
20
|
PerformanceCounter upTime = new PerformanceCounter("System", "System Up Time");
|
16
21
|
upTime.NextValue();
|
17
|
-
float value = upTime.NextValue(); //この値と現在日時
|
22
|
+
float value = upTime.NextValue(); // この値を起動時間(経過秒)として現在日時から計算で起動日時を求める
|
23
|
+
// この値も高速スタートアップ環境の場合はシャットダウンで値がリセットされない為、前回再起動時からの累積動作時間となる
|
18
24
|
```
|
19
|
-
上記2つの方法を試しましたが
|
20
|
-
いずれも高速スタートアップが有効になっている環境だと
|
21
|
-
想定した起動日時を取得することが出来ません。
|
22
|
-
高速スタートアップの場合は値がリセットされていない。
|
23
25
|
|
24
26
|
|
25
27
|
どのようにすると
|
26
|
-
高速スタートアップ環境で
|
28
|
+
高速スタートアップ環境での起動日時を取得することができるのでしょうか
|
27
|
-
ご教授いただけませんでしょうか
|