📄 main.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 + -