⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.h

📁 进程模块查看 < 多任务(多进程、多线程) >
💻 H
字号:
/*==============================================================================
文件: main.h
说明:进程模块管理
时间:2006-07-03
编写:oshj || oshj@21cn.com
环境:VC6.0/WinXP/SP2/1024*768分辨率
特别说明:界面和功能仿照李马的 July 程序,但他的程序为什么能那么小?而且 split 效果我也做不出来

已知BUG:在我的机器上有一个 GoogleToolbarNotifier.exe ,进程树选择它之后,
就无法继续刷新了,暂时还不晓得是什么原因,懒得管它了~ 
==============================================================================*/
//------------------------------------------------------------------------------
#ifndef _INC_MAIN
#define _INC_MAIN
//
//#pragma  warning(disable:4172)  
//
#include <windows.h>
#include "resource.h"
#include <commctrl.h>
#include <commdlg.h>
#include <TLHELP32.H>	//枚举进程
#pragma comment(lib,"comctl32.lib")
// C RunTime Header Files
#include <stdio.h>
//
#include <vector>
using namespace std;
//------------------------------------------------------------------------------
#ifndef ListView_SetCheckState
   #define ListView_SetCheckState(hwndLV, i, fCheck) \
      ListView_SetItemState(hwndLV, i, \
      INDEXTOSTATEIMAGEMASK((fCheck)+1), LVIS_STATEIMAGEMASK)
#endif
//------------------------------------------------------------------------------
//#define Msg(str) MessageBox(0,str,"Infomation",MB_OK|MB_ICONINFORMATION)
#define MAX_SIZE	500
#define NOR_SIZE	50
#define DELAYTIME	2000
//------------------------------------------------------------------------------
typedef struct tag_ModulesInfo
{
	int		index;
	HMODULE	h;
	DWORD	size;
	char	path[MAX_SIZE];
	char	name[NOR_SIZE]; //搜索用

}MODULESINFO, *LPMODULESINFO;
typedef vector<MODULESINFO> THEVECMD;

typedef struct tag_ProcessInfo
{
	DWORD	pid;
	char	name[NOR_SIZE];
	char	path[MAX_SIZE];
	THEVECMD v;

}PROCESSINFO, *LPPROCESSINFO;
typedef vector<PROCESSINFO> THEVEC;
//------------------------------------------------------------------------------
//注册窗口类、创建窗口
bool InitApplication(HINSTANCE hInstance);
bool InitInstance(HINSTANCE hInstance,int nCmdShow);
//窗口回调函数
LRESULT CALLBACK MainWndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
LRESULT CALLBACK DlgAboutProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
LRESULT CALLBACK DlgSeachProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
//枚举进程
DWORD EnumProcess(LPCTSTR sTarget);
//提升当前进程的权限
bool EnableDebugPrivilege();
//初始化数据 iFlag: 0首次 1再次 2仅单进程模块
void InitAllData(int iFlag);
void InitValue(PROCESSENTRY32 *pe);
void ClearAllData();
//初始化树和列表
void InitTreeData();
void InitList();
void InitListData(LPCTSTR sTarget);
//
HTREEITEM InsertItem(HTREEITEM hTI,LPSTR str,int imgOpen,int imgClose);
void InitImageList();
//打开系统运行对话框
void RunSysDlg();
bool KillProcess();
//内存中获得 PID 信息
DWORD GetPrcIdMem(LPCTSTR sTarget);
//------------------------------------------------------------------------------
//通知目标进程卸载指定的模块
bool RemoteFreeLibrary(DWORD dwProcessID,LPCSTR lpszDll);
void UnloadModules();
void CheckAndUnload();
//文件属性对话框
void ShowFileAttr(LPCTSTR sFile);
//------------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -