Code your App,Advertise,Sell your App,All in one platform...
Go to Link
Penetration Testing,Tools,Tutorials,Programing,Leaks,and more..
C#,C++,VB,Java,Powershell,Bash,and more..
0 Members and 1 Guest are viewing this topic.
//method to parse the CIM_DATETIME value returned from a WMI call to a .Net readable format/// <summary>/// method used to parse the datetime returned from a WMI call. The date format/// that WMI works well with is CIM_DATETIME. The date is stored as a humany readable/// format, such as 20100101161959.115081+060 (This represents 01/01/2010 16:19:59) This/// method converts CIM_DATETIME values into .Net readable DateTime object/// </summary>/// <param name="date"></param>/// <returns></returns>private DateTime ParseCIM(string date){ //datetime object to store the return value DateTime parsed = DateTime.MinValue; //check date integrity if (date != null && date.IndexOf('.') != -1) { //obtain the date with miliseconds string newDate = date.Substring(0, date.IndexOf('.') + 4); //check the lenght if (newDate.Length == 18) { //extract each date component int y = Convert.ToInt32(newDate.Substring(0, 4)); int m = Convert.ToInt32(newDate.Substring(4, 2)); int d = Convert.ToInt32(newDate.Substring(6, 2)); int h = Convert.ToInt32(newDate.Substring(8, 2)); int mm = Convert.ToInt32(newDate.Substring(10, 2)); int s = Convert.ToInt32(newDate.Substring(12, 2)); int ms = Convert.ToInt32(newDate.Substring(15, 3)); //compose the new datetime object parsed = new DateTime(y, m, d, h, mm, s, ms); } } //return datetime return parsed;}/// <summary>/// method to get the current systems up-time, returned in a Timespan value/// </summary>/// <returns></returns>public TimeSpan GetSystemUptime(){ //timespan object to store the result value TimeSpan up = new TimeSpan(); //management objects to interact with WMI ManagementClass m = new ManagementClass("Win32_OperatingSystem"); //loop throught the WMI instances foreach (ManagementObject instance in m.GetInstances()) { //get the LastBootUpTime date parsed (comes in CIM_DATETIME format) DateTime last = ParseCIM(instance["LastBootUpTime"].ToString()); //check it value is not DateTime.MinValue if (last != DateTime.MinValue) //get the diff between dates up = DateTime.Now - last; } //return the uptime TimeSpan return up;}