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

📄 hooktermproapp.cpp

📁 《windows程序设计》王艳平版的书籍源代码
💻 CPP
字号:
////////////////////////////////////////////////
// HookTermProApp.cpp文件

#include "resource.h"
#include "HookTermProApp.h"

CMyApp theApp;

// DLL导出函数
BOOL WINAPI SetSysHook(BOOL bInstall, DWORD dwThreadId = 0)
{
	typedef (WINAPI *PFNSETSYSHOOK)(BOOL, DWORD);

	// 调试的时候可以这样设置szDll[] = "..//09HookTermProLib//debug//09HookTermProLib.dll";
	char szDll[] = "09HookTermProLib.dll";

	// 加载09HookTermProLib.dll模块
	BOOL bNeedFree = FALSE;
	HMODULE hModule = ::GetModuleHandle(szDll);
	if(hModule == NULL)
	{
		hModule = ::LoadLibrary(szDll);
		bNeedFree = TRUE;
	}

	// 获取SetSysHook函数的地址
	PFNSETSYSHOOK mSetSysHook = (PFNSETSYSHOOK)::GetProcAddress(hModule, "SetSysHook");
	if(mSetSysHook == NULL) // 文件不正确?
	{
		if(bNeedFree)
			::FreeLibrary(hModule);
		return FALSE;
	}

	// 调用SetSysHook函数
	BOOL bRet = mSetSysHook(bInstall, dwThreadId);

	// 如果有必要,释放上面加载的模块
	if(bNeedFree)
		::FreeLibrary(hModule);

	return bRet;
}

BOOL CMyApp::InitInstance()
{
	// 安装钩子
	if(!SetSysHook(TRUE, 0))
		::MessageBox(NULL, "安装钩子出错!", "09HookTermProApp", 0);
	// 显示对话框
	CMainDialog dlg;
	m_pMainWnd = &dlg;
	dlg.DoModal();
	// 卸载钩子
	SetSysHook(FALSE);

	return FALSE;
}

CMainDialog::CMainDialog(CWnd* pParentWnd):CDialog(IDD_MAINDLG, pParentWnd)
{
}

BEGIN_MESSAGE_MAP(CMainDialog, CDialog)
ON_WM_COPYDATA()
END_MESSAGE_MAP()

BOOL CMainDialog::OnInitDialog()
{
	CDialog::OnInitDialog();
	SetIcon(theApp.LoadIcon(IDI_MAIN), FALSE);
	::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 
		0, 0, SWP_NOSIZE|SWP_NOREDRAW|SWP_NOMOVE);

	return TRUE;
}

BOOL CMainDialog::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
	GetDlgItem(IDC_HOOKINFO)->SetWindowText((char*)pCopyDataStruct->lpData);
	// 检查是否禁止执行
	BOOL bForbid = ((CButton*)GetDlgItem(IDC_FORBIDEXE))->GetCheck();
	if(bForbid)
		return -1;
	return TRUE;
}


⌨️ 快捷键说明

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