// testDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "test.h"
#include "testDlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// 对话框数据
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// CtestDlg 对话框
CtestDlg::CtestDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CtestDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_library = NULL;
}
void CtestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CtestDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON_START, &CtestDlg::OnBnClickedButtonStart)
ON_BN_CLICKED(IDC_BUTTON_PAUSE, &CtestDlg::OnBnClickedButtonPause)
ON_BN_CLICKED(IDC_BUTTON_STOP, &CtestDlg::OnBnClickedButtonStop)
END_MESSAGE_MAP()
// CtestDlg 消息处理程序
BOOL CtestDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
char buff[256];
GetCurrentDirectory(256, buff);
CString strPath(buff);
m_library = LoadLibrary("D:\\HookFile\\Debug\\MyHookFile.dll");
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CtestDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void CtestDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CtestDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CtestDlg::OnBnClickedButtonStart()
{
if ( m_library != NULL )
{
GetDlgItem( IDOK )->EnableWindow( false );
GetDlgItem( IDC_BUTTON_PAUSE )->EnableWindow( true );
GetDlgItem( IDC_BUTTON_START )->EnableWindow( false );
typedef HRESULT (*InstallHook)(HWND);
InstallHook pFunc;
pFunc = (InstallHook)::GetProcAddress( m_library ,"InstallHook");
if ( pFunc != NULL )
{
(*pFunc)(m_hWnd);
}
}
}
void CtestDlg::OnBnClickedButtonPause()
{
if ( m_library != NULL )
{
GetDlgItem( IDOK )->EnableWindow( true );
GetDlgItem( IDC_BUTTON_START )->EnableWindow( true );
GetDlgItem( IDC_BUTTON_PAUSE )->EnableWindow( false );
typedef HRESULT (*UnInstallHook)( );
UnInstallHook pFunc;
pFunc = (UnInstallHook)::GetProcAddress( m_library , "UninstallHook");
if ( pFunc != NULL )
{
(*pFunc)();
}
}
}
void CtestDlg::OnBnClickedButtonStop()
{
if ( m_library != NULL ){
FreeLibrary( m_library );
m_library = NULL;
}
OnOK();
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
FILE_HOOK_TEST.zip (47个子文件)
FILE_HOOK_TEST
stdafx.cpp 137B
test.cpp 2KB
res
test.rc2 664B
test.ico 66KB
stdafx.h 2KB
test.vcxproj 6KB
testDlg.h 704B
targetver.h 234B
test.h 430B
stdafx.asm 51KB
resource.h 2KB
testDlg.asm 69KB
test.rc 10KB
test.asm 41KB
Debug
test.obj 28KB
test.log 4KB
vc100.idb 1.89MB
CL.write.1.tlog 1KB
CL.read.1.tlog 72KB
test.res 68KB
mt.read.1.tlog 636B
test.exe.embed.manifest.res 732B
rc.write.1.tlog 438B
stdafx.obj 729KB
rc.read.1.tlog 3KB
test.exe.embed.manifest 667B
mt.command.1.tlog 714B
test_manifest.rc 198B
cl.command.1.tlog 2KB
link-cvtres.read.1.tlog 2B
test.lastbuildstate 73B
link.write.1.tlog 940B
test.vcxprojResolveAssemblyReference.cache 713B
test.exe.intermediate.manifest 381B
link-cvtres.write.1.tlog 2B
link.command.1.tlog 1KB
rc.command.1.tlog 928B
link.read.1.tlog 5KB
mt.write.1.tlog 454B
test.write.1.tlog 0B
test.pch 35.06MB
test.Build.CppClean.log 2KB
testDlg.obj 43KB
vc100.pdb 3.74MB
test.vcxproj.user 376B
test.aps 88KB
testDlg.cpp 4KB
共 47 条
- 1
资源评论
局外狗
- 粉丝: 64
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功