获取其它进程窗口中的状态栏信息(FindWindowEx GetWindowThreadProcessId OpenProcess SendMessage轮番轰炸)

[cpp] view plain copy

    1. HWND hWnd = ::FindWindow(NULL, _T("XXXXX"));
    2. if(NULL == hWnd)
    3. {
    4. return ;
    5. }
    6. HWND hWndStatusBar = ::FindWindowEx(hWnd, NULL, _T("msctls_statusbar32"), NULL);
    7. if(NULL == hWndStatusBar)
    8. {
    9. return ;
    10. }
    11. DWORD dwProcessId = 0;
    12. GetWindowThreadProcessId(hWnd, &dwProcessId);
    13. HANDLE hProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, dwProcessId);
    14. if(NULL == hProcess)
    15. {
    16. return ;
    17. }
    18. LRESULT nCount = ::SendMessage(hWndStatusBar, SB_GETPARTS, 0, 0);
    19. LPVOID pBuf = VirtualAllocEx(hProcess, NULL, MAX_PATH, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
    20. if(NULL != pBuf)
    21. {
    22. TCHAR buf[MAX_PATH] = {0};
    23. DWORD dwRead = 0;
    24. for(int i=0; i<(int)nCount; i++)
    25. {
    26. ::SendMessage(hWndStatusBar, SB_GETTEXT, i, (LPARAM)pBuf);
    27. if(ReadProcessMemory(hProcess, pBuf, buf, sizeof(buf), &dwRead))
    28. {
    29. AfxMessageBox(buf);
    30. }
    31. }
    32. VirtualFreeEx(hProcess, pBuf, 0, MEM_RELEASE);
    33. }
    34. CloseHandle(hProcess);

http://blog.csdn.net/visualeleven/article/details/7286517

时间: 2024-08-07 18:16:35

获取其它进程窗口中的状态栏信息(FindWindowEx GetWindowThreadProcessId OpenProcess SendMessage轮番轰炸)的相关文章

VC实现A进程窗口嵌入到B进程窗口中显示的方法

这篇文章主要介绍了VC实现A进程窗口嵌入到B进程窗口中显示的方法,对于理解windows程序运行原理的进程问题有一定的帮助,需要的朋友可以参考下 本文通过一个Demo示例讲述把A应用程序嵌入到B应用程序中显示的方法. 主要代码如下: <span style="font-size:12px;font-weight: normal;">//在B应用启动时创建A进程 CreateProcess(_T("A.exe"),NULL,NULL,NULL,FALSE,

在窗口中显示类信息

import java.lang.reflect.Field; import javax.swing.JFrame; import javax.swing.BorderFactory; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JTextField; import javax.swing.JButton; import javax.swing.JLabel

在python获取网页的代码中添加头信息模拟浏览器

为什么要添加头部信息,因为有时候有些网页会有反爬虫的设置,导致无法获取正常的网页,在这里,在代码的头部添加一个headers信息,模拟成浏览器去访问网页. 没有添加头部信息的代码 import urllib2 url = "http://blog.51cto.com/lsfandlinux/2046467" file = urllib2.urlopen(url) html = file.read() print html 接下来添加头部信息,首先在浏览器打开百度一下,然后检查网页的头部

简析Geoserver中获取图层列表以及各图层描述信息的三种方法

1.背景 实际项目中需要获取到Geoserver中的图层组织以及各图层的描述信息:比如字段列表等.在AGS中,我们可以直接通过其提供的REST服务获取到图层组织情况以及图层详细信息列表,具体如下所示: 那么在Geoserver中是否也有相关用法?各种方法之间有何优劣? 2.REST请求方法 2.1方法描述 该方法与上面讲解的AGS的REST请求方法类似,也是先获取到组织情况然后再进行各个图层的描述信息获取: 获取workspace信息: 获取workspace下的datasource信息:获取w

【工具】获取窗口与控件信息

[工具]获取窗口与控件信息 常言道,工欲善其事,必先利其器.在脚本中常见的一种操作是操作窗口或控件,在操作之前,首先必须获取目标的各种信息,这时就要用上辅助工具了.本文会介绍一些获取窗口.控件信息的常用工具,这里的先后顺序是随意安排.如果目前用的没什么问题就继续用着,如果对某些地方不满意则可试试其他.简单的截图不容易全面反映整个工具的功能和特色,使用才能获得真实体验. Active Window Info 评论:这个最初来自于 AutoIt3 且安装包中自带的工具,就无需过多介绍了.功能简陋,但

C# Process获取当前进程信息

1.获取当前进程信息整理 Process.GetCurrentProcess(),返回当前程序的进程对象. Process cur = Process.GetCurrentProcess(); //当前进程的id Console.WriteLine(cur.Id); //获取关联的进程的终端服务会话标识符. Console.WriteLine(cur.SessionId); //当前进程的名称 Console.WriteLine(cur.ProcessName); //当前进程的启动时间 Con

win/linux 下使用 psutil 获取进程 CPU / memory / IO 占用信息

psutil - A cross-platform process and system utilities module for Python 1. 安装 pip 安装即可. windows 下需要安装 vs2008,否则报错: Unable to find vcvarsall.bat 如果已经安装 vs2010 / vs2012 则需要设置环境变量,VS90COMNTOOLS 指向已有的 vs 变量. vs2010 设置如下: VS90COMNTOOLS = %VS100COMNTOOLS%

获取其他进程中“Internet Explorer_TridentCmboBx”的内容

function GetTridentCmboBxText( // 获取其他进程中“Internet Explorer_TridentCmboBx”的内容   mHandle: THandle; // ComboBox句柄   mStrings: TStrings // 输出列表 ): Boolean; // 返回获取数据是否成功 var   I: Integer;   vItemCount: Integer;   vAddress: array[0..4] of Char;   vProces

获取其他进程中StatusBar的文本

(*// 标题:获取其他进程中StatusBar的文本 说明:Window2000+Delphi6调试通过 设计:Zswang 支持:[email protected] 日期:2005-02-22 //*) uses CommCtrl; function GetStatusBarText(mHandle: THandle): string; var   vBuffer: array[0..$1000] of Char;   vSize: Integer;   I: Integer;   vCou