m_toolTip.AddTool(this,
_T("主框架窗口\r系统的主界面\n供其他界面参照"));
m_toolTip.AddTool(FromHandle(m_wndStatusBar.m_hWnd),
_T("状态栏\r标准的状态栏"));
m_toolTip.AddTool(&m_wndToolBar,
_T("工具栏\r标准的工具栏"));
m_clrBackground= m_toolTip.GetTipBkColor();
m_clrText = m_toolTip.GetTipTextColor();
LOGFONT lf;
CFont* pFont=m_toolTip.GetFont();
ASSERT(pFont!=NULL);
VERIFY(pFont->GetLogFont(&lf));
VERIFY(m_font.CreateFontIndirect(&lf));
// Change the color of one of the tooltips
OXTOOLINFO ToolInfo;
if (m_toolTip.GetToolInfo(ToolInfo, GetDlgItem(IDCANCEL)))
{
ToolInfo.clrBackColor = RGB(255, 255, 255);
ToolInfo.clrTextColor = RGB( 0, 0, 255);
m_toolTip.SetToolInfo(&ToolInfo);
}
// m_toolTip.RelayEvent(pMsg);
// FloatControlBar(&m_wndDynHelpView,pt);
// LONG wndProc=GetWindowLong(m_hWnd,GWL_WNDPROC);
// wndProc=SetWindowLong(m_wndDynHelpView.m_hWnd,GWL_WNDPROC,wndProc);
//
/*函数列表:
1.CreateToolhelp32Snapshot
2.Heap32First
3.Heap32ListFirst
4.Heap32ListNext
5.Heap32Next
6.Module32First
7.Module32Next
8.Process32First
9.Process32Next
10.Thread32First
11.Thread32Next
12.Toolhelp32ReadProcessMemory
1. 创建快照函数CreateToolhelp32Snapshot
HANDLE WINAPI CreateToolhelp32Snapshot //返回值THandle将在以后要枚举进程、线程等对象时使用
(
DWORD dwFlags,
//TH32CS_SNAPPROCESS=进程的信息
//TH32CS_SNAPTHREAD =线程的信息
//TH32CS_SNAPHEAPLIST=指定进程的堆列表
//TH32CS_SNAPMODULE =指定进程的模块列表
DWORD th32ProcessID
// dwFlags=TH32CS_SNAPMODULE或者TH32CS_SNAPHEAPLIST,需要指定具体的进程ID
// 否则将忽略此参数。把它赋为0表示当前进程(也就是自己)
);
当我们得到快照的句柄后可以分别使用Xxx32First,Xxx32Next这些函数进行对象枚举。
2. Xxx32First,Xxx32Next枚举函数与有关结构
2.1 进程有关的函数与结构
typedef struct tagPROCESSENTRY32 {
DWORD dwSize; // 指定结构的大小,在调用Process32First前需要设置,否则将会失败
DWORD cntUsage; // 引用计数
DWORD th32ProcessID; // 进程号
DWORD th32DefaultHeapID; // 进程的堆号,只对Toolhelp函数有意义,并不是一个有效句柄
DWORD th32ModuleID; // 进程的模块号,只对Toolhelp函数有意义,并不是一个有效句柄
DWORD cntThreads; // 进程中包括的线程数
DWORD th32ParentProcessID; // 进程的母进程
LONG pcPriClassBase; // 进程的线程的基优先级,所有此进程创建的线程将基于此优先级
DWORD dwFlags; // 保留,没有使用
char szExeFile[MAX_PATH]; // 进程所对应的文件及路径
} PROCESSENTRY32;
typedef PROCESSENTRY32 * PPROCESSENTRY32;
typedef PROCESSENTRY32 * LPPROCESSENTRY32;
BOOL WINAPI Process32First( //调用成功将为True,否则为False
HANDLE hSnapshot, //前面由CreateToolhelp32Snapshot创建的快照句柄
LPPROCESSENTRY32 lppe //函数输出进程信息
);
BOOL WINAPI Process32Next(HANDLE hSnapshot,LPPROCESSENTRY32 lppe);
2.2 模块有关的函数和结构
typedef struct tagMODULEENTRY32 {
DWORD dwSize; // 指定结构的大小,在调用Module32First前需要设置,否则将会失败
DWORD th32ModuleID; // 模块号
DWORD th32ProcessID; // 包含本模块的进程号
DWORD GlblcntUsage; // 本模块的全局引用计数
DWORD ProccntUsage; // 包含模块的进程上下文中的模块引用计数
BYTE * modBaseAddr; // 模块基地址
DWORD modBaseSize; // 模块大小(字节数)
HMODULE hModule; // 包含模块的进程上下文中的hModule句柄
// 注意:modBaseAddr 与 hModule 只在th32ProcessID的
// 上下文才有效
char szModule[MAX_MODULE_NAME32 + 1]; //模块名
char szExePath[MAX_PATH]; //模块对应的文件名和路径
} MODULEENTRY32;
typedef MODULEENTRY32 * PMODULEENTRY32;
typedef MODULEENTRY32 * LPMODULEENTRY32;
//同进程说明
BOOL WINAPI Module32First(HANDLE hSnapshot,LPMODULEENTRY32 lpme);
BOOL WINAPI Module32Next(HANDLE hSnapshot,LPMODULEENTRY32 lpme);
2.3 线程有关的函数和结构
typedef struct tagTHREADENTRY32{
DWORD dwSize; // 指定结构的大小,在调用Thread32First前需要设置,否则将会失败
DWORD cntUsage; // 线程引用计数
DWORD th32ThreadID; // 线程号
DWORD th32OwnerProcessID; // 拥有线程的进程号
LONG tpBasePri; // 在线程创建时的初始优先级
LONG tpDeltaPri; // 现在线程的优先级的相对于初始值的改变量
DWORD dwFlags; // 保留,没有使用
} THREADENTRY32;
typedef THREADENTRY32 * PTHREADENTRY32;
typedef THREADENTRY32 * LPTHREADENTRY32;
BOOL WINAPI Thread32First(HANDLE hSnapshot,LPTHREADENTRY32 lpte);
BOOL WINAPI Thread32Next(HANDLE hSnapshot,LPTHREADENTRY32 lpte);
2.4 堆有关的函数和结构
typedef struct tagHEAPENTRY32
{
DWORD dwSize; // 指定结构的大小,在调用Heap32First前需要设置,否则将会失败
HANDLE hHandle; // 堆的句柄
DWORD dwAddress; // 堆起始位置的线性地址
DWORD dwBlockSize; // 堆的大小(字节数)
DWORD dwFlags; // 标志,为以下值
//=LF32_FIXED 堆内存块的位置是固定的
//=LF32_FREE 堆内存块没有使用
//=LF32_MOVEABLE 堆内存块的位置是可移动的
DWORD dwLockCount;
// 堆的锁定计数,每次对堆的执行GlobalLock
// 或者LocalLock都将使它增1
DWORD dwResvd; // 保留,没有使用
DWORD th32ProcessID; // 拥有本堆的进程号,
// 这个ID是可以被其他WIN32 API使用的。
DWORD th32HeapID; // 堆号,只能在ToolHelp API中内部使用,并不是有效的句柄
} HEAPENTRY32;
typedef HEAPENTRY32 * PHEAPENTRY32;
typedef HEAPENTRY32 * LPHEAPENTRY32;
BOOL WINAPI Heap32First(LPHEAPENTRY32 lphe,DWORD th32ProcessID,DWORD th32HeapID);
BOOL WINAPI Heap32Next(LPHEAPENTRY32 lphe);
3. 更为有用的Toolhelp API函数有Toolhelp32ReadProcessMemory,它可以读其他进程内存空间的内容。
BOOL WINAPI Toolhelp32ReadProcessMemory( // 函数成功返回True,否则返回False
DWORD th32ProcessID, // 指定进程
LPCVOID lpBaseAddress, // 要读的进程内存空间的起始地址
LPVOID lpBuffer, // 将要读的内容的保存缓冲区
DWORD cbRead, // 要读的字节数
LPDWORD lpNumberOfBytesRead // 成功读取的字节数
);
*/
没有合适的资源?快使用搜索试试~ 我知道了~
Visual C_C++系统开发典型实例解析,源代码
共1481个文件
h:377个
cpp:254个
txt:112个
4星 · 超过85%的资源 需积分: 9 5 下载量 177 浏览量
2008-10-23
20:54:08
上传
评论
收藏 23.1MB RAR 举报
温馨提示
我是天才 经典实例 注意了是源代码富有解析 希望对练手有帮助 最近再搞operation 期待中
资源推荐
资源详情
资源评论
收起资源包目录
Visual C_C++系统开发典型实例解析,源代码 (1481个子文件)
TestPaper.aps 1.66MB
mytest.aps 100KB
TestLib.aps 93KB
GlideMenu.aps 64KB
ExifVw.aps 63KB
test.aps 62KB
WmiDemo.aps 58KB
MyThread.aps 57KB
nk_liuzhx.aps 50KB
NewADO.aps 44KB
ReadFile.aps 44KB
MediaServer.aps 40KB
Editi.aps 40KB
FirstDLL.aps 37KB
Videoplayer.aps 36KB
ThreadSample.aps 36KB
CDynamicDialog.aps 35KB
MP3Player.aps 35KB
ExcelTest.aps 35KB
Ydata11.aps 35KB
my.aps 35KB
ShellExt_TxtInfo.aps 33KB
com_ex.aps 32KB
SecondDLL.aps 32KB
MultiWin.aps 30KB
HtmlHelpExp.aps 29KB
Test.aps 28KB
My.aps 28KB
MyInterface.aps 23KB
MySQLtest.aps 21KB
CDlgOracleImageRW.aps 21KB
report.aps 21KB
Ydata11.aps 21KB
usebutton.aps 20KB
zzPropEx.aps 4KB
ASPCOM.APS 4KB
invoke.ASM 949B
index.asp 431B
BLDDLL.BAT 193B
星云遐想800.BMP 1.37MB
splash.bmp 198KB
hj.bmp 55KB
back.bmp 23KB
cj_logo.bmp 13KB
hj1.bmp 11KB
bmp00001.bmp 9KB
wvleft.bmp 8KB
157.bmp 3KB
query.bmp 3KB
mainfram.bmp 2KB
il_tab.bmp 2KB
Toolbar.bmp 2KB
CloseB.BMP 2KB
Toolbar.bmp 1KB
toolbar3.bmp 1KB
closeD.BMP 1KB
new1.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
edit.bmp 1014B
BOOK1.bmp 824B
DIAMOND1.bmp 824B
aranlist.bmp 822B
headerba.bmp 718B
bitmap1.bmp 630B
button_images.bmp 598B
dynamich.bmp 598B
toolbar1.bmp 502B
bitmap1.bmp 482B
Toolbar.bmp 478B
toolbar1.bmp 478B
PushPin.bmp 478B
arancol.bmp 454B
PLAN.BMP 382B
NOTEBOOK.BMP 382B
key.bmp 374B
filenew.bmp 374B
grphpie.bmp 374B
arrow3r.bmp 374B
arrow3l.bmp 374B
bitmap_l.bmp 374B
Toolbar.bmp 358B
btn_explorer.bmp 298B
btn_arro.bmp 254B
ReportCtl.bmp 238B
LEAF.BMP 222B
irtest.bmp 190B
com_ex_p.c 23KB
ASPCOM_p.c 14KB
irtest.c 7KB
zzPropEx_p.c 5KB
ShellExt_TxtInfo_p.c 5KB
HUFFMAN.C 4KB
MediaServer_i.c 2KB
共 1481 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
资源评论
- daffodilfree2014-12-31还算实用吧
乐乐happiness
- 粉丝: 2
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功