GetProcessTimes (kernel32)
Last changed: -213.219.90.210

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern bool GetProcessTimes(IntPtr hProcess, out FILETIME
   lpCreationTime, out FILETIME lpExitTime, out FILETIME lpKernelTime,
   out FILETIME lpUserTime);

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

// www.dotnetnews.com

using System;

using System.Runtime.InteropServices;

namespace GetProcessTimesTest

{

    class Test
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("Enter PID:");
            int i = Convert.ToInt32( Console.ReadLine() );
            IntPtr ip = System.Diagnostics.Process.GetProcessById(i).Handle;
            FILETIME ftCreation, ftExit, ftKernel, ftUser;

            Console.WriteLine(GetProcessTimes(ip, out ftCreation, out ftExit, out ftKernel, out ftUser));

            Console.WriteLine("Creation {0}", FiletimeToDateTime(ftCreation));
            Console.WriteLine("Exit {0}", FiletimeToDateTime(ftExit));
            Console.WriteLine("Kernel {0}", FiletimeToDateTime(ftKernel));
            Console.WriteLine("User {0}", FiletimeToDateTime(ftUser));

            Console.ReadLine();
        }

        [DllImport("kernel32.dll")]
        static extern bool GetProcessTimes(IntPtr hProcess, out FILETIME
            lpCreationTime, out FILETIME lpExitTime, out FILETIME lpKernelTime,
            out FILETIME lpUserTime);

        public static DateTime FiletimeToDateTime(FILETIME fileTime)
        {
            long hFT2 = (((long) fileTime.dwHighDateTime) << 32) + fileTime.dwLowDateTime;
            return DateTime.FromFileTimeUtc(hFT2);
        }
    }

}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation