Code:
#define WIN32_LEAN_AND_MEAN
#define _WIN32_IE 0x300
#include <windows.h>
#include <tlhelp32.h>
#include <commctrl.h>
#include "resource.h"
#pragma comment(lib, "gdi32.lib")
#pragma comment(lib, "comctl32.lib")
BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
HWND hListView;
switch(Message)
{
case WM_INITDIALOG:
{
HINSTANCE hInstance;
LVCOLUMN lvc = { 0 };
hListView = CreateWindow(WC_LISTVIEW, NULL, WS_CHILD | WS_VISIBLE | LVS_REPORT,
14,38,236,178, hwnd, (HMENU) 500, hInstance, NULL);
ListView_SetExtendedListViewStyle(hListView, LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP);
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH | LVCF_FMT;
lvc.fmt = LVCFMT_LEFT;
// Adding three columns to the list-view
lvc.iSubItem = 0;
lvc.cx = 100;
lvc.pszText = TEXT("Process Name");
ListView_InsertColumn(hListView, 0, &lvc);
lvc.iSubItem = 1;
lvc.cx = 75;
lvc.pszText = TEXT("User name");
ListView_InsertColumn(hListView, 1, &lvc);
lvc.iSubItem = 2;
lvc.cx = 50;
lvc.pszText = TEXT("PID");
ListView_InsertColumn(hListView, 2, &lvc);
lvc.iSubItem = 3;
lvc.cx = 70;
lvc.pszText = TEXT("Memory use");
ListView_InsertColumn(hListView, 3, &lvc);
// SetTimer(hwnd, TIMER1, 1000, (TIMERPROC) NULL);
}
break;
case WM_TIMER:
{
HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
KillTimer(hwnd, TIMER1);
MessageBox(hwnd, TEXT("Dam CreateToolhelp32Snapshot!"), TEXT("Error"),
MB_OK | MB_ICONEXCLAMATION);
}
pe32.dwSize = sizeof(PROCESSENTRY32);
if (!Process32First(hProcessSnap, &pe32))
{
KillTimer(hwnd, TIMER1);
CloseHandle(hProcessSnap);
MessageBox(hwnd, TEXT("Dam Process32First!"), TEXT("Error"),
MB_OK | MB_ICONEXCLAMATION);
}
while(Process32Next(hProcessSnap, &pe32))
{
// Add the items when I manage to make the list show up
}
CloseHandle(hProcessSnap);
}
break;
case WM_CLOSE:
KillTimer(hwnd, TIMER1);
EndDialog(hwnd, 0);
break;
default:
return FALSE;
}
return TRUE;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProc);
}