- 浏览: 353258 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
1 利用Spy++获取窗口和某一控件的Class Name, Title Name;
2 利用Class Name, Title Name获取handle然后发送消息;
代码如下:
2 利用Class Name, Title Name获取handle然后发送消息;
代码如下:
void CFindWindowTestDlg::OnBnClickedFindSkypeBtn() { // TODO: Add your control notification handler code here HWND m_pHwnd = ::FindWindow(_T("TConversationForm"), _T("Jacky")); ASSERT(m_pHwnd != NULL); HWND m_pHwndTChatEntryControl = ::FindWindowEx(m_pHwnd, NULL, _T("TChatEntryControl"), NULL); ASSERT(m_pHwndTChatEntryControl != NULL); HWND m_pHwndTTChatRichEdit = ::FindWindowEx(m_pHwndTChatEntryControl, NULL, _T("TChatRichEdit"), NULL); ASSERT(m_pHwndTTChatRichEdit != NULL); if (m_pHwndTTChatRichEdit != NULL) { for (int i =0; i<20; i++) { ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 'T', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 'e', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 's', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 't', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, ' ', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 'M', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 'e', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 's', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 's', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 'a', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 'g', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, 'e', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_CHAR, ' ', NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_KEYDOWN, VK_RETURN, NULL); ::PostMessage(m_pHwndTTChatRichEdit, WM_KEYUP, VK_RETURN, NULL); Sleep(200); } } if(m_pHwnd) { //::PostMessage(m_pHwnd, WM_CLOSE, 0, 0);//Exit } }
BOOL CLeakDiagAutoLogDlg::DoAutoLogging() { CString strData; m_pMsgEdit->GetWindowText(strData); HWND m_pHwnd = ::FindWindow(NULL, _T("LeakDiag")); if (m_pHwnd != NULL) { HWND m_pHwnLogBtnCtrl = ::FindWindowEx(m_pHwnd, NULL, _T("Button"), _T("Log")); if (m_pHwnLogBtnCtrl != NULL) { long id = ::GetDlgCtrlID(m_pHwnLogBtnCtrl); ::PostMessage(m_pHwnd, WM_COMMAND, MAKELONG(id, BN_CLICKED), NULL); } else { strData += _T("m_pHwnLogBtnCtrl is NULL\r\n"); m_pMsgEdit->SetWindowText(strData); return FALSE; } } else { strData += _T("m_pHwnd is NULL!\r\n"); m_pMsgEdit->SetWindowText(strData); return FALSE; } return TRUE; // HWND m_pHwnStartControl = ::FindWindowEx(m_pHwnd, NULL, _T("Button"), _T("Start")); // ASSERT(m_pHwnStartControl != NULL); // long id = ::GetDlgCtrlID(m_pHwnStartControl); // ::PostMessage(m_pHwnd, WM_COMMAND, MAKELONG(id,BN_CLICKED), NULL); } void CLeakDiagAutoLogDlg::OnBnClickedRunBtn() { // TODO: Add your control notification handler code here UpdateData(TRUE); if (0 == m_dwTimeSpan) { m_dwTimeSpan =1; } CEdit* pEdit = static_cast<CEdit*>(GetDlgItem(IDC_RUN_BTN)); if (!m_bTimer) { SetTimer(1, UINT(m_dwTimeSpan*1000), NULL); m_bTimer = TRUE; pEdit->SetWindowText(_T("Stop")); } else { KillTimer(1); m_bTimer = FALSE; pEdit->SetWindowText(_T("Start")); } UpdateData(FALSE); } void CLeakDiagAutoLogDlg::OnTimer(UINT_PTR nIDEvent) { // TODO: Add your message handler code here and/or call default CTime cTime = CTime::GetCurrentTime(); CString strTime = cTime.Format("[%Y-%m-%d %H:%M:%S] ");//display YYYY:MM:DD HH:MM:SS switch (nIDEvent) { case 1: { if (DoAutoLogging()) { CString strData; CString strTemp; strTemp.Format("[RUN = %ld] DoAutoLogging", ++m_dwTotalRun); m_pMsgEdit->GetWindowText(strData); strData += strTime; strData += strTemp; strData += "\r\n"; m_pMsgEdit->SetWindowText(strData); } break; } case 2: default: { break; } } CDialog::OnTimer(nIDEvent); }
- spylite24.zip (265.8 KB)
- 下载次数: 3
发表评论
-
FreeRTOS
2022-03-05 16:31 202Ref https://blog.csdn.net/weix ... -
Python: HTTP文件下载压力测试工具
2020-12-15 17:45 431import urllib.request import ... -
[Python][网络爬虫]
2020-09-28 16:36 0#!/usr/bin/python #coding: U ... -
串口通讯相关
2018-11-02 13:44 357https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1221https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 419https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 515// this function create a bmp ... -
[轉] android默认debug.keystore的密码
2017-12-12 11:14 972http://blog.csdn.net/leehong200 ... -
Android NDK搭建環境
2017-11-27 13:25 525https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5108583相关资料,整理中... -
Java反编译工具 - Java Decompiler
2017-06-21 20:14 416http://jd.benow.ca/ JD-GUI is ... -
JAVA环境变量配置
2017-06-19 13:56 305参考Link http://www.cnblogs.com/x ... -
Java高级应用之JNI
2017-06-19 09:00 536参考link http://www.cnblogs.com/l ... -
Windows7上使用VMWare搭建iPhone开发环境
2017-05-17 08:49 397Windows7上使用VMWare搭建iPhone开发环境 h ... -
C++实现ping功能
2017-04-18 11:21 2021基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 8491 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1504OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1831ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 809转自 http://code.csdn.net/news/28 ...
相关推荐
VC++实现spy++源码获取窗口句柄的功能vs2015
可以用于查找窗口句柄或窗口类型的spy++工具,可以查看窗口应用程序的句柄等信息,监控窗口消息。
Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 内容 C#Spy++调用 ...
代码没注释,需要的就下载来自己研究吧。 原理就是自己画两个图标和一个光标文件,子类化一个CStatic来响应鼠标左键按下和弹起的消息,在这两个消息内更改图标文件以达到...获取窗口句柄部分我是用了一个线程来操作的。
类似SPY++的窗口查看器,MFC工程,详细信息见博文《仿照spy++写个窗口查看器(MFC工程)》
visual c++制作仿spy++的程序.zip
C/C++案例参考,可以通过MFC实现间谍软件,游戏修改器的功能。spy++是以个对于初学者很好的练习案例,可以有很打帮助
SPY++直接运行版(windows句柄获取工具)
Spy++ 窗口名修改
VB 实现Spy++工具 学习 API 好工具
Spy++ (SPYXX.EXE) 是一个基于 Win32(最新版本支持Win64) 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用 Spy++ 可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树...
功能:类似觅风易语言教程的spy++,利用API实现拖动查看窗口信息,控件信息系统信息。 包括窗口和组件的句柄、类名、进程ID等一些列信息,以及窗口和组件的样式、对应的状态、所展现的图像等。资源作者:。资源界面:...
绝对正宗的Spy++源代码 童叟无欺,老少皆宜
获取窗口句柄。是编程必备软件。C++,易语言,按键精灵。
Microsoft Spy++从VS2010中提取出来的,Microsoft Spy++是一个非常好的查看Windows操作系统的窗口、消息、进程、线程信息的工具,简单易用,功能强大(Delphi也提供了一个类似的工具 WinSight32,但在方便性、易用性...
Microsoft Spy++是一个非常好的查看Windows操作系统的窗口、消息、进程、线程信息的工具,简单易用,功能强大(Delphi也提供了一个类似的工具WinSight32,但在方便性、易用性上实在不及Spy++)。 此工具一直随...
SPY++ 绿色的,可以获取当前窗口的句柄,支持查找功能,点击即可获得,方便快捷,亲测好用
Spy++ (SPYXX.EXE) 是一个基于 Win32(最新版本支持Win64) 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用 Spy++ 可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树...
仿Microsoft Spy++ 支持拖拽选择窗口句柄 ,显示进程数据,等基本功能
spy++窗口查找,拖过去返回窗口句柄。spy++模仿。。。。。。。。。。。。。。。。