亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? enumproc.cpp

?? VC中進(jìn)程管理方法
?? CPP
字號(hào):
////////////////////////////////////////////////////////////////
// MSDN Magazine -- August 2002
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
// Compiles with Visual Studio 6.0 on Windows XP.
//
#include "stdafx.h"
#include "EnumProc.h"
#pragma warning(disable:4786)				 // disable annoying C4786
#include <string>								 // STL string class
#include <list>								 // STL list class
using namespace std;							 // use STL
//#if(WINVER >= 0x0500)
#define SMTO_NOTIMEOUTIFNOTHUNG 0x0008
//#endif /* WINVER >= 0x0500 */

////////////////////////////////////////////////////////////////
// CProcessIterator - Iterates all processes
//
CProcessIterator::CProcessIterator()
{
	m_pids = NULL;
}

CProcessIterator::~CProcessIterator()
{
	delete [] m_pids;
}

//////////////////
// Get first process: Call EnumProcesses to init array. Return first one.
//
DWORD CProcessIterator::First()
{
	m_current = (DWORD)-1;
	m_count = 0;
	DWORD nalloc = 1024;
	do {
		delete [] m_pids;
		m_pids = new DWORD [nalloc];
		if (EnumProcesses(m_pids, nalloc*sizeof(DWORD), &m_count)) {
			m_count /= sizeof(DWORD);
			m_current = 1;						 // skip IDLE process
		}
	} while (nalloc <= m_count);

	return Next();
}

////////////////////////////////////////////////////////////////
// CProcessModuleIterator - Iterates all modules in a process
//
CProcessModuleIterator::CProcessModuleIterator(DWORD pid)
{
	m_hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
		FALSE, pid);
}

CProcessModuleIterator::~CProcessModuleIterator()
{
	CloseHandle(m_hProcess);
	delete [] m_hModules;
}

//////////////////
// Get first module in process. Call EnumProcesseModules to
// initialize entire array, then return first module.
//
HMODULE CProcessModuleIterator::First()
{
	m_count = 0;
	m_current = (DWORD)-1; 
	m_hModules = NULL;
	if (m_hProcess) {
		DWORD nalloc = 1024;
		do {
			delete [] m_hModules;
			m_hModules = new HMODULE [nalloc];
			if (EnumProcessModules(m_hProcess, m_hModules,
				nalloc*sizeof(DWORD), &m_count)) {
				m_count /= sizeof(HMODULE);
				m_current = 0;
			}
		} while (nalloc <= m_count);
	}
	return Next();
}

////////////////////////////////////////////////////////////////
// CWindowIterator - Iterates all top-level windows (::EnumWindows)
//
CWindowIterator::CWindowIterator(DWORD nAlloc)
	: m_current(0), m_count(0)
{
	ASSERT(nAlloc>0);
	m_hwnds = new HWND [nAlloc];
	m_nAlloc = nAlloc;
}

CWindowIterator::~CWindowIterator()
{
	delete [] m_hwnds;
}

// callback passes to virtual fn
BOOL CALLBACK CWindowIterator::EnumProc(HWND hwnd, LPARAM lp)
{
	return ((CWindowIterator*)lp)->OnEnumProc(hwnd);
}

//////////////////
// Virtual enumerator proc: add HWND to array if OnWindows is TRUE.
// You can override OnWindow to filter windows however you like.
//
BOOL CWindowIterator::OnEnumProc(HWND hwnd)
{
	if (OnWindow(hwnd)) {
		if (m_count < m_nAlloc)
			m_hwnds[m_count++] = hwnd;
	}
	return TRUE; // keep looking
}

////////////////////////////////////////////////////////////////
// CMainWindowIterator - Iterates the main windows of a process.
// Overrides CWindowIterator::OnWindow to filter.
//
CMainWindowIterator::CMainWindowIterator(DWORD pid, BOOL bVis,
	DWORD nAlloc) : CWindowIterator(nAlloc), m_pid(pid), m_bVisible(bVis)
{
}

CMainWindowIterator::~CMainWindowIterator()
{
}

//////////////////
// OnWindow:: Is window's process ID the one i'm looking for?
// Set m_bVisible=FALSE to find invisible windows too.
//
BOOL CMainWindowIterator::OnWindow(HWND hwnd)
{
	DWORD pidwin;
	GetWindowThreadProcessId(hwnd, &pidwin);
	if (pidwin==m_pid)
		return TRUE;
	else
		return FALSE;
	//	return TRUE;
	//	if (!m_bVisible || (GetWindowLong(hwnd,GWL_STYLE) & WS_VISIBLE)) 
	//	{
	//		DWORD pidwin;
	//		GetWindowThreadProcessId(hwnd, &pidwin);
	//		if (pidwin==m_pid)
	//			return TRUE;
	//	}
	//	return FALSE;
}

////////////////////////////////////////////////////////////////
// CFindKillProcess - to find/kill a process by module name.
//
CFindKillProcess::CFindKillProcess()
{
}

CFindKillProcess::~CFindKillProcess()
{
}

//////////////////
// Search for process whose module name matches parameter.
// Finds "foo" or "foo.exe"
//
DWORD CFindKillProcess::FindProcess(LPCTSTR modname, BOOL bAddExe)
{
	CProcessIterator itp;
	for (DWORD pid=itp.First(); pid; pid=itp.Next()) 
	{
		TCHAR name[_MAX_PATH];
		CProcessModuleIterator itm(pid);
		HMODULE hModule = itm.First(); // .EXE
		if (hModule) 
		{
			GetModuleBaseName(itm.GetProcessHandle(),
				hModule, name, _MAX_PATH);

			std::string sModName = modname;
			if (bAddExe)
				sModName += ".exe";

			if (strcmpi(sModName.c_str(),name)==0)
				return pid;
		}
	}
	return 0;
}

//////////////////
// Kill a process cleanly: Close main windows and wait.
// bZap=TRUE to force kill.
// nTime=TimeOut(ms)
BOOL CFindKillProcess::KillProcess(DWORD pid, BOOL bZap,DWORD nTime)
{
	if (pid == 0)
		return TRUE;
	CMainWindowIterator itw(pid);
	for (HWND hwnd=itw.First(); hwnd; hwnd=itw.Next()) 
	{
		// print hwnd info
		//		char cClassName[256];
		//		memset(cClassName,0,256);
		//		CString Title;
		//		CWnd::FromHandle( hwnd )->GetWindowText(Title);
		//		WINDOWINFO wi;
		//		ZeroMemory(&wi,sizeof(WINDOWINFO));
		//		::GetWindowInfo(hwnd,&wi);
		//		::GetClassName(hwnd,cClassName,sizeof(cClassName));
		//		DWORD n = wi.dwStyle&WS_POPUP;
		//		TRACE("Classname = %s, Title = %s,Is Popup?%x\n",cClassName,Title,n);
		// end print
		DWORD bOKToKill = TRUE;
		LRESULT lr = SendMessageTimeout(hwnd, WM_QUERYENDSESSION, 0, 0,
			SMTO_ABORTIFHUNG|SMTO_NOTIMEOUTIFNOTHUNG, 100, &bOKToKill);
		if(lr)// lr == 0 時(shí),為hwnd無效
		{
			TRACE("lr=%d,error no=%x,bOkToKill=%d\n",lr,GetLastError(),bOKToKill);
			if (!bOKToKill)
			{
				return FALSE;  // window doesn't want to die: abort
			}
			PostMessage(hwnd, WM_CLOSE, 0, 0);
		}
	}
	return TRUE;
	// I've closed the main windows; now wait for process to die. 
	//	BOOL bKilled = TRUE;
	//	HANDLE hp=OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE,FALSE,pid);
	//	if (hp)
	//	{
	//		if (WaitForSingleObject(hp, nTime) != WAIT_OBJECT_0) {
	//			if (bZap)
	//			{ // didn't die: force kill it if zap requested
	//				bKilled = TerminateProcess(hp,0);
	//			} 
	//			else
	//			{
	//				bKilled = FALSE;
	//			}
	//		}
	//		CloseHandle(hp);
	//	}
	// return bKilled;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品乱码久久久久久黑人| 国产美女久久久久| 国产精品毛片久久久久久久| 中文字幕av在线一区二区三区| 久久伊人蜜桃av一区二区| 欧美福利视频导航| 日韩精品专区在线影院观看| 97久久精品人人做人人爽| 伊人婷婷欧美激情| 国产精品视频看| 久久综合九色综合97婷婷| 精品久久久久久久久久久久久久久| 风流少妇一区二区| 国产麻豆成人精品| 国产精品你懂的在线| 成人在线视频一区| 麻豆91在线观看| 日韩三级精品电影久久久| 国产成人在线影院| 成人av影视在线观看| 五月天中文字幕一区二区| 午夜视黄欧洲亚洲| 一区二区三区四区激情| 一区二区三区影院| 天天综合天天综合色| 亚洲影视资源网| 丝袜a∨在线一区二区三区不卡 | 国产精品每日更新在线播放网址| 日本一区二区免费在线| 久久99精品网久久| 久久久不卡网国产精品一区| 国产.欧美.日韩| 亚洲人成影院在线观看| 欧美怡红院视频| 麻豆精品一区二区综合av| 久久精品日韩一区二区三区| 成人99免费视频| 亚洲va韩国va欧美va精品 | 欧美大黄免费观看| 成人性生交大片| 亚洲6080在线| 精品成人a区在线观看| www.久久精品| 日韩高清一区二区| 中文字幕va一区二区三区| 欧美色视频一区| 国产在线看一区| 中文字幕av一区二区三区| 欧美日韩国产免费一区二区 | 日本久久一区二区| 一区二区三区在线视频观看| 日韩欧美的一区| www.欧美日韩| 国产资源在线一区| 亚洲黄色av一区| 久久久久99精品国产片| 欧美视频一区在线| 国产成a人亚洲| 婷婷国产v国产偷v亚洲高清| 国产精品系列在线| 日韩区在线观看| 欧美性猛交xxxx乱大交退制版| 国产一区在线观看视频| 亚洲一区在线观看视频| 中文字幕精品在线不卡| 欧美高清一级片在线| 91美女视频网站| 国产在线国偷精品产拍免费yy| 一区二区成人在线| 国产精品久久看| 久久久久久久久免费| 日韩三级伦理片妻子的秘密按摩| 欧美视频一区二区三区在线观看| 国产精品亚洲第一区在线暖暖韩国| 亚洲动漫第一页| 亚洲色图一区二区三区| 国产精品久久影院| 久久久久久久电影| 久久久三级国产网站| 精品日韩一区二区三区| 欧美乱妇一区二区三区不卡视频| 色综合久久久网| 成人精品亚洲人成在线| 国内精品久久久久影院一蜜桃| 日韩av一级电影| 午夜伦理一区二区| 亚洲超碰97人人做人人爱| 亚洲免费av在线| 久久精品一区二区三区四区| 久久久青草青青国产亚洲免观| 欧美成人福利视频| 日韩三级精品电影久久久| 51精品国自产在线| 欧美男生操女生| 91.麻豆视频| 91精品国产综合久久久蜜臀图片| 在线欧美小视频| 在线免费观看一区| 欧美性猛交xxxx乱大交退制版| 在线看国产一区| 欧美伊人精品成人久久综合97| 欧美午夜片在线观看| 欧美视频一区二区| 日韩一区二区不卡| 日韩欧美一级在线播放| 在线播放欧美女士性生活| 不卡一区二区中文字幕| caoporn国产精品| 91视频www| 欧美理论片在线| 制服丝袜在线91| 日韩一区二区三区三四区视频在线观看 | 国产91精品露脸国语对白| 国产成a人亚洲精品| 91免费版pro下载短视频| 在线观看不卡视频| 欧美日韩国产片| 2欧美一区二区三区在线观看视频| 91精品国产综合久久福利软件| 日韩欧美美女一区二区三区| 久久久一区二区三区捆绑**| 欧美激情在线看| 亚洲国产综合色| 精品亚洲欧美一区| 粉嫩蜜臀av国产精品网站| 国产成人自拍网| 91精品国产aⅴ一区二区| 久久人人爽爽爽人久久久| 亚洲欧洲三级电影| 性做久久久久久久免费看| 国模一区二区三区白浆| 99精品国产热久久91蜜凸| 欧美日韩国产另类不卡| 欧美一区永久视频免费观看| 国产视频一区二区在线| 亚洲精品免费视频| 精品一区二区三区视频 | 美女在线一区二区| 成人一区二区三区| 欧美日韩精品欧美日韩精品一综合| 日韩欧美国产电影| 成人欧美一区二区三区白人| 视频在线在亚洲| 大桥未久av一区二区三区中文| 欧美亚州韩日在线看免费版国语版| 精品国产91洋老外米糕| 最新国产精品久久精品| 视频在线在亚洲| 91尤物视频在线观看| 日韩精品一区二区三区视频播放| 中文字幕制服丝袜成人av| 久久精品国产精品亚洲精品| 色女孩综合影院| 国产色产综合色产在线视频| 天堂久久一区二区三区| jlzzjlzz国产精品久久| 精品日韩成人av| 亚洲 欧美综合在线网络| 99亚偷拍自图区亚洲| 日韩一级免费观看| 亚洲精品免费在线观看| 色综合久久久久| 久久精品视频一区| 老司机精品视频导航| 欧美精品丝袜中出| 一区二区三区在线播| 99久久国产综合色|国产精品| 久久精品一二三| 国内欧美视频一区二区| 91福利国产精品| 亚洲日本成人在线观看| 成人伦理片在线| 亚洲国产岛国毛片在线| 韩国成人在线视频| 精品乱人伦小说| 免费久久99精品国产| 色诱亚洲精品久久久久久| 1000精品久久久久久久久| 99国产精品久久久| 国产精品人人做人人爽人人添| 国内精品国产成人| 久久综合九色综合欧美亚洲| 久久99精品一区二区三区三区| 欧美一区二区日韩一区二区| 日韩高清在线电影| 欧美一级免费大片| 亚洲国产一二三| 日韩丝袜美女视频| 麻豆精品久久精品色综合| 这里只有精品电影| 美女尤物国产一区| 精品免费日韩av| 老司机午夜精品| 国产午夜精品久久久久久免费视| 国产精品88888| 一卡二卡欧美日韩| 欧美裸体bbwbbwbbw| 美女一区二区在线观看| 欧美电视剧免费观看| 国产激情一区二区三区四区|