testctrldlg.cpp
来自「《Windows应用程序捆绑核心编程》配套源码」· C++ 代码 · 共 105 行
CPP
105 行
// TestCtrlDlg.cpp : implementation file
//
#include "stdafx.h"
#include "TestCtrl.h"
#include "TestCtrlDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTestCtrlDlg dialog
CTestCtrlDlg::CTestCtrlDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTestCtrlDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTestCtrlDlg)
m_strRead = _T("");
m_strWrite = _T("");
//}}AFX_DATA_INIT
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CTestCtrlDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTestCtrlDlg)
DDX_Text(pDX, IDC_READVALUE, m_strRead);
DDX_Text(pDX, IDC_WRITEVALUE, m_strWrite);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTestCtrlDlg, CDialog)
//{{AFX_MSG_MAP(CTestCtrlDlg)
ON_BN_CLICKED(IDC_READ, OnRead)
ON_BN_CLICKED(IDC_WRITE, OnWrite)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTestCtrlDlg message handlers
BOOL CTestCtrlDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
return TRUE; // return TRUE unless you set the focus to a control
}
void CTestCtrlDlg::OnRead()
{
DWORD pid;
HWND hWnd = ::FindWindow (NULL,TEXT("TestServer"));
if(!hWnd)
{
AfxMessageBox("没有找到TestServer进程.");
return;
}
::GetWindowThreadProcessId(hWnd, &pid );
HANDLE hProcess = ::OpenProcess (PROCESS_ALL_ACCESS,FALSE,pid);
LPVOID lpBaseAddress=(LPVOID)0x12fee8;
DWORD dwValue;
if(!::ReadProcessMemory(hProcess ,
lpBaseAddress,(void*)&dwValue,sizeof(DWORD),0)) return;
m_strRead.Format("%d",dwValue);
UpdateData(FALSE);
}
void CTestCtrlDlg::OnWrite()
{
DWORD pid;
HWND hWnd = ::FindWindow (NULL,TEXT("TestServer"));
if(!hWnd)
{
AfxMessageBox("没有找到TestServer进程.");
return;
}
::GetWindowThreadProcessId(hWnd, &pid );
HANDLE hProcess = ::OpenProcess (PROCESS_ALL_ACCESS,FALSE,pid);
LPVOID lpBaseAddress=(LPVOID)0x12fee8;
UpdateData();
DWORD dwValue=atoi(m_strWrite);
if(!::WriteProcessMemory(hProcess ,
lpBaseAddress,(void*)&dwValue,sizeof(DWORD),0)) return;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?