我原先是用GetTickCount来算出系统的启动时间,但系统要是启动超过49.7天后,就会出现重新变成0
因为这个GetTickCount函数返回的是INT32类型,到了最大值 就头开始了因此我就想到另外一个解决方案就是调用NtQuerySystemInformation,来查出启动时间
但是网上找了好久都没找到现成的C#调用此函数的完整代码,因此来这边问问喽,呵呵~~或者用其它方法如WMI用否查出启动时间呢?
因为这个GetTickCount函数返回的是INT32类型,到了最大值 就头开始了因此我就想到另外一个解决方案就是调用NtQuerySystemInformation,来查出启动时间
但是网上找了好久都没找到现成的C#调用此函数的完整代码,因此来这边问问喽,呵呵~~或者用其它方法如WMI用否查出启动时间呢?
解决方案 »
- ShowInTaskBar属性一问
- 如何可以打开www.csdn.net,并获取其中的所有文本?
- 文本提前和赋值的问题
- 更换了端口 WebService 无法连接到远程服务器
- 吐血推荐:微软webcast视频下载工具
- 怎么在C#中获取没有声明"<?xml version=1.0"的信息?
- 父窗體有datagridview,彈出模式窗體進行修改。請問大家是通過什麼方式刷新父窗體的datagridview?
- 学C#快1年了竟然连这么弱的问题都不会,大家帮忙,关于窗体间数据传递的问题。
- C#要如何判断一个PCM音频的波形?
- 学习C#有段时间了,也敲了不少例子,可就是水平不见高
- usercontrol的page_load事件为什么不被执行
- 判断两个时间相等用什么方法?(用c#)
[DllImport("kernel32.dll", SetLastError=true)]
static extern bool GetSystemTimes (
out FILETIME lpIdleTime,
out FILETIME lpKernelTime,
out FILETIME lpUserTime
);
struct FILETIME
{
public uint DateTimeLow;
public uint DateTimeHigh;}//call
FILETIME lpIdleTime, lpKernelTime, lpUserTime;
GetSystemTimes( out lpIdleTime, out lpKernelTime, out lpUserTime );
ulong lngKernelTime = ((ulong)lpKernelTime.DateTimeHigh << 32)
+ lpKernelTime.DateTimeLow;
ulong lngUserTime = ((ulong)lpUserTime.DateTimeHigh << 32)
+ lpUserTime.DateTimeLow;
double dRunTime = lngKernelTime + lngUserTime;
dRunTime /= ( TimeSpan.TicksPerMillisecond * 60 * 60 * 1000 );
Debug.WriteLine( dRunTime.ToString( "f2" ) );
http://community.csdn.net/Expert/topic/5147/5147770.xml?temp=.1404077