Radek ChalupaČlánkyUkázky kóduTipy a trikyAktualityŠkolení a konzultaceVývoj softwareFreewareKontakt

Zjištění procesorového času procesu v user módu ve Windows.

#include <stdio.h>
#include <windows.h>
#include <locale.h>

int main()
{
	_wsetlocale(LC_ALL, L"Czech");
	FILETIME ft_vytvoreni;
	FILETIME ft_konec;
	FILETIME ft_kernel;
	FILETIME ft_user;
	wprintf(L"nyní zaměstnáme procesor...\n");
	for (size_t i = 0; i < 100000000; i++)
	{
		if (658478 == rand())
			wprintf(L"náhoda...\n");
	}
	HANDLE h_proces = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
		FALSE, GetCurrentProcessId());
	if (GetProcessTimes(h_proces, &ft_vytvoreni, &ft_konec, &ft_kernel, &ft_user))
	{
		SYSTEMTIME st;
		if (FileTimeToSystemTime(&ft_user, &st))
			wprintf(L"Čas procesoru v user mode: %.2d:%.2d:%.2d.%d\n",
					st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
		CloseHandle(h_proces);
	}
	else
	{
		CloseHandle(h_proces);
		return EXIT_FAILURE;
	}
	printf("\nhotovo\n");
	getchar();
	return EXIT_SUCCESS;
}

Copyright © 2019 - Radek Chalupa