All pastes #1995923 Raw Edit

get kl0wned

public cpp v1 · immutable
#1995923 ·published 2010-11-18 23:45 UTC
rendered paste body
// EnumWindows.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <Windows.h>#include <iostream>#include <fstream>#include <psapi.h>#include <tchar.h>using namespace std;wofstream outfile;int CheckProcessName(DWORD processID, TCHAR *checkProcessName){    TCHAR processName[MAX_PATH];    // Get a handle to the process.    HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID);    // Get the process name.    if (NULL != hProcess)    {        HMODULE hMod;        DWORD cbNeeded;        if (EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cbNeeded))            GetModuleBaseName(hProcess, hMod, processName, sizeof(processName)/sizeof(TCHAR));    }    CloseHandle(hProcess);        return !_wcsnicmp_l(processName, checkProcessName, MAX_PATH, 0);}BOOL CALLBACK EnumChildProc( HWND hwnd, LPARAM lParam ){	TCHAR buf[512];	outfile << L" -- ImgBurn --";	for (int i = 0; i < lParam; i++)			outfile << L"-";	outfile << L"> ";	if (SendMessageTimeout(hwnd, WM_GETTEXT, sizeof(buf)/sizeof(TCHAR), (LPARAM)(void*)buf, SMTO_ABORTIFHUNG, 1000, 0))			outfile << buf;	outfile << endl;	EnumChildWindows(hwnd, EnumChildProc, lParam + 1);	return 1;}BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){	TCHAR buf[512];	DWORD pid;	if (GetWindowThreadProcessId(hwnd, &pid) && pid == lParam)	{		outfile << L" -- ImgBurn --> ";		if (SendMessageTimeout(hwnd, WM_GETTEXT, sizeof(buf)/sizeof(TCHAR), (LPARAM)(void*)buf, SMTO_ABORTIFHUNG, 1000, 0))			outfile << buf;		outfile << endl;		EnumChildWindows(hwnd, EnumChildProc, 0);		//return 0;	}	return 1;}int _tmain(int argc, _TCHAR* argv[]){	HWND hwnd;	TCHAR buf[512];    DWORD pProcessIds[1024], foundID = 0;    HMODULE hModules[1024];    DWORD pBytesReturned;    TCHAR processName[MAX_PATH] = TEXT("ImgBurn.exe");	outfile.open ("test.txt");    EnumProcesses(pProcessIds, sizeof(pProcessIds), &pBytesReturned);    DWORD numProcesses = pBytesReturned / sizeof(DWORD);    for (int i = 0; i < numProcesses; i++)    {        if(pProcessIds[i] != 0)        {            if (CheckProcessName(pProcessIds[i], processName))            {                foundID = pProcessIds[i];                break;            }        }    }	// get windows belonging to the process	EnumWindows(EnumWindowsProc, foundID);	outfile.close();	return 0;}