c#读取外部程序 SysListView32、ListView20WndClass


-
C# 读取 获取 外部程序 SysListView32 ListView20WndClass
-
2020-04-04
-
2019-09-19
-
2019-03-06
-
2018-12-28
-
2018-09-12
-
2018-06-26
-
2018-06-20
-
2017-11-03
-
2017-05-18
-
2017-04-27
2KB
c#,windows Api读取其他程序SysListview32内容的类
2015-12-24c#,windows Api读取其他程序SysListview32内容的类
C# 无法获取Syslistview32 内容_course
2018-11-15``` #include <windows.h> #include <commctrl.h> TCHAR* ClassName = TEXT("FC数据下载 [运行监控] 日志检测"); //类名和窗口名 TCHAR* TitleName = TEXT("FC数据下载 [运行监控] 日志检测"); HWND hwnd; int total,column; HDC hdc; PAINTSTRUCT ps; HFONT hFont; CHAR szText[100] = TEXT("日志总数:"); CHAR hint[20]; int i; char itemText[100]={0}; LVITEM lvitem, *plvitem; char ItemBuf[512],*pItem; DWORD PID; HANDLE hProcess; static HWND hwndPB; //FC数据下载 [运行监控] CHAR hint1[20] = TEXT("成功:"); CHAR hint2[20] = TEXT("失败:"); CHAR hint3[20] = TEXT("未关闭文件:"); int a = 0; int b = 0; int c = 0; LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpszCmdLine,int nCmdShow){ HWND hwnd; //主窗口句柄,在CreateWindow中赋值 MSG msg; //消息变量,在GetMessage中使用 WNDCLASS wndclass; //窗口类 wndclass.hbrBackground = (HBRUSH)COLOR_WINDOW;//窗口背景 wndclass.hCursor = LoadCursor(NULL,IDC_ARROW); //鼠标 wndclass.hIcon = LoadIcon(NULL,IDI_QUESTION); //图标 wndclass.lpszClassName = ClassName; //类名 wndclass.cbClsExtra = 0; //类的额外参数 wndclass.cbWndExtra = 0; //窗口的额外参数.用于基于同一窗口类的窗口各自区分. //在自定义对话框类时必须指定为DLGWINDOWEXTRA的大小 wndclass.lpszMenuName = NULL; //菜单名.可以用作子窗口的id wndclass.style =CS_HREDRAW | CS_VREDRAW; //窗口风格 wndclass.lpfnWndProc = WndProc; //窗口过程 wndclass.hInstance = hInstance; //包含窗口过程的实例句柄 if( !RegisterClass(&wndclass) ){ //注册窗口类 MessageBox(NULL, "窗口注册失败!","错误",MB_ICONEXCLAMATION|MB_OK); return 0; } hwnd = CreateWindowEx( //创建窗口 WS_EX_TOPMOST, ClassName, //窗口类名 TitleName, //窗口标题 WS_OVERLAPPEDWINDOW, //窗口风格 CW_USEDEFAULT, //初始的x坐标 CW_USEDEFAULT, //初始的y坐标 500, //初始的宽度 700, //初始的高度 NULL, //父窗口 NULL, //菜单 hInstance, //和窗口相关的实例句柄 NULL //额外参数 ); //窗口居中 RECT rect; int xLeft,yTop; GetWindowRect(hwnd,&rect); xLeft = (GetSystemMetrics(SM_CXFULLSCREEN)-(rect.right-rect.left))/2; yTop = (GetSystemMetrics(SM_CYFULLSCREEN)-(rect.bottom-rect.top))/2; SetWindowPos(hwnd, HWND_TOPMOST, xLeft,yTop,-1,-1, SWP_NOSIZE | SWP_NOZORDER); ShowWindow( hwnd,nCmdShow ); //显示窗口 UpdateWindow( hwnd ); //更新窗口 if(hwnd == NULL) { MessageBox(NULL, "窗口创建失败!","错误",MB_ICONEXCLAMATION|MB_OK); return 0; } while( GetMessage(&msg,NULL,0,0) ) { //消息循环 TranslateMessage(&msg); //将WM_XXXKEYXXX消息翻译为WM_CHAR消息 DispatchMessage(&msg); //传递消息到窗口过程 } return msg.wParam; //返回 } DWORD WINAPI PBThreadProc( LPVOID lpParameter ){ //FC数据下载 [运行监控] hwnd = FindWindowEx(0,0,"Afx:400000:b:10003:6:e002c3","FC数据下载 [ 运行监控 ]"); hwnd = FindWindowEx(hwnd,NULL,"AfxMDIFrame42s",""); hwnd = FindWindowEx(hwnd,NULL,"#32770",""); hwnd = FindWindowEx(hwnd,NULL,"#32770",""); hwnd = FindWindowEx(hwnd,NULL,"SysListView32","List1"); if(!hwnd){ HWND hwnd_box = FindWindowEx(0,0,ClassName,TitleName); MessageBox(hwnd_box,"FC数据下载 [运行监控] 未启动","友情提示",MB_ICONEXCLAMATION); } //获取总条数 total = SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0); HWND hwndPB = (HWND) lpParameter; //进度条的窗口句柄 PBRANGE range; //进度条的范围 SendMessage( hwndPB, PBM_SETRANGE, //设置进度条的范围 (WPARAM)0, (LPARAM)(MAKELPARAM(0,total)) ); SendMessage( hwndPB, PBM_GETRANGE, //获取进度条的范围 (WPARAM)TRUE, //TRUE 表示返回值为范围的最小值,FALSE表示返回最大值 (LPARAM)&range ); while(TRUE){ SendMessage( hwndPB, PBM_DELTAPOS, //设置进度条的新位置为当前位置加上范围的1/40 (WPARAM)1, (LPARAM)0 );//((range.iHigh-range.iLow)/20) if( SendMessage( hwndPB, PBM_GETPOS, (WPARAM)0, (LPARAM)0 ) == range.iHigh ){ //取得进度条当前位置 break; } } } LRESULT WINAPI WndProc( HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam ){ switch( message ){ case WM_CREATE:{ //InitCommonControls(); //确保已注册了进度条类PROGRESS_CLASS hwndPB = CreateWindowEx( 0, PROGRESS_CLASS, NULL, WS_CHILD | WS_VISIBLE, 0,0,0,0, //位置和大小在WM_SIZE中设置 hwnd, (HMENU)0, ((LPCREATESTRUCT)lParam)->hInstance, NULL); CreateThread( //操作进度条的线程 NULL, 0, (LPTHREAD_START_ROUTINE)PBThreadProc, hwndPB, 0, 0 ); return 0; } case WM_PAINT:{ hdc = BeginPaint (hwnd, &ps); hFont=CreateFont(20,0,0,0,0,0,0,0,GB2312_CHARSET,0,0,0,0,TEXT("微软雅黑")); SetBkMode(hdc,TRANSPARENT); (HFONT)SelectObject(hdc,hFont); TextOut(hdc, 10, 10, szText, lstrlen(szText)); TextOut(hdc, 10, 75, hint1, lstrlen(hint1)); TextOut(hdc, 10, 98, hint2, lstrlen(hint2)); TextOut(hdc, 10, 125, hint3, lstrlen(hint3)); //FC数据下载 [运行监控] hwnd = FindWindowEx(0,0,"Afx:400000:b:10003:6:e002c3","FC数据下载 [ 运行监控 ]"); hwnd = FindWindowEx(hwnd,NULL,"AfxMDIFrame42s",""); hwnd = FindWindowEx(hwnd,NULL,"#32770",""); hwnd = FindWindowEx(hwnd,NULL,"#32770",""); hwnd = FindWindowEx(hwnd,NULL,"SysListView32","List1"); total = ListView_GetItemCount(hwnd); TextOut(hdc, 80, 10, _itoa(total,hint,10), lstrlen(_itoa(total,hint,10))); GetWindowThreadProcessId(hwnd,&PID); hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID); plvitem=(LVITEM*)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE); pItem=(char*)VirtualAllocEx(hProcess, NULL, 128, MEM_COMMIT, PAGE_READWRITE); if(hProcess != NULL){ int j = 155; for(i=0; i < total; i++){ lvitem.mask = LVIF_TEXT; lvitem.cchTextMax=512; //FC数据下载 [运行监控] lvitem.iSubItem=2; lvitem.pszText=pItem; WriteProcessMemory(hProcess, plvitem, &lvitem, sizeof(LVITEM), NULL); SendMessage(hwnd, LVM_GETITEMTEXT, (WPARAM)i, (LPARAM)plvitem); ReadProcessMemory(hProcess, pItem, ItemBuf, 512, NULL); //FC数据下载 [运行监控] if(strcmp(ItemBuf,"成功") == 0){ // strcmp 相等 a+=1; } if(strcmp(ItemBuf,"失败") == 0){ // strstr 包含 b+=1; } if(strstr(ItemBuf,"Z:") != NULL && strstr(ItemBuf,".") != NULL ){ //&& strstr(ItemBuf,".") != NULL c+=1; //打印出未关闭的文件路径 TextOut(hdc, 10, j, ItemBuf, lstrlen(ItemBuf)); j+=30; } } //FC数据下载 [运行监控] TextOut(hdc, 60, 76, _itoa(a,hint,10), lstrlen(_itoa(a,hint,10))); TextOut(hdc, 60, 99, _itoa(b,hint,10), lstrlen(_itoa(b,hint,10))); TextOut(hdc, 98, 125, _itoa(c,hint,10), lstrlen(_itoa(c,hint,10))); } CloseHandle(hwnd); CloseHandle(hProcess); VirtualFreeEx(hProcess, plvitem, 0, MEM_RELEASE); VirtualFreeEx(hProcess, pItem, 0, MEM_RELEASE); return 0 ; } case WM_SIZE:{ RECT rc; GetClientRect(hwnd, &rc); MoveWindow( hwndPB, 10,//rc.left 距离左边距 40,//(rc.bottom - rc.top )/9 距离上边距 (rc.right - rc.left)-20,// 进度条长度 25,//(rc.bottom - rc.top )/12 进度条高度 TRUE); return 0; } case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc( hwnd,message,wParam,lParam ); } ```
怎么获取ListView20WndClass内容_course
2015-09-27这个是C#代码,请问vc代码应该怎么写 public List<string> GetColumnsHeaderText(int processHandle, int headerhwnd, int
请问各位前辈,C#如何用WIN32获取ListView20WndClass类的控件里的数据?_course
2007-06-07请问各位前辈,C#如何用WIN32获取ListView20WndClass类的控件里的数据?获取句柄后不知道如何下手了,请求指导!
472KB
SysListView32通用表格控件内容读取程序
2010-07-10刚刚写的用来读取Windows通用控件之表格控件的程序. 在这两天学习Windows的服务的时候觉得要把MMC中服务管理列表提取出来研究所以做了这个软件,拿出来给大家共享 。主要用到的是: Write
ListView_GetItemText 无法获取内容_course
2016-02-04BOOL LoadDesktopViewFuckItems(void) { HWND hDeskTop; hDeskTop = ::FindWindow("progman",NULL); hDeskT
3KB
获得SysListView32的值的软件源码
2011-04-09获得SysListView32的值VB很实用的源码,精心挑选的精品源码
c# 获取 ListView20WndClass 里的数据问题_course
2014-02-27c# 获取 ListView20WndClass 里的数据问题 在网上拷来的代码。 执行 SendMessage(hwndListView, LVM_GETITEMW, 0, vPointer.ToI
用FindWindowEx得到系统窗体SysListView32句柄的问题(难.......高手请进)_course
2005-10-31我想选择系统打开窗体中的某个文件夹,于是先获得系统当前窗体的句柄,然后得到窗体SysListView32的句柄,但是始终得不到SysListView32的句柄 这是为什么。 HWND hFocus1;
2KB
C#取得SysListView32所有行(包括列表头)的内容源代码,用用例可运行
2019-03-18C#取得SysListView32所有行(包括列表头)的内容源代码,用用例可运行
C# 获取ListView20WndClass中的内容_course
2013-07-07有一个程序中的列表,用spy++查看是ListView20WndClass的,请问如何能够获取里面的内容呢? 使用http://www.cnblogs.com/hongfei/archive/2012
跨进程获取设置了LVS_OWNERDATA 的SYSLISTVIEW32控件中的数据_course
2015-11-11跨进程获取设置了LVS_OWNERDATA 的SYSLISTVIEW32控件中的数据
c#下读取外部程序listview控件,已经取得行数,但读出内容为空值?_course
2013-05-08小弟我需要读取外部程序的listview控件的文本信息,主要参考了http://www.cnblogs.com/hongfei/archive/2012/12/24/2829799.html这个帖子,
python中如何获取syslistview32的内容_course
2016-07-25如题,我已经找到了这个syslistview32的句柄,请教下要怎么获得这个表格里面的内容,python,用到了pywin32,。
117B
Keil5安装包
2019-05-23Keil5安装包,附带STM31F1、STM32F4支持包以及破解软件。
C语言入门--必须基础17讲
2017-07-28适合没有基础的人群学习C语言,简单的入门教程。帮助小白理解什么是开发,什么是编程。做的很简单,很多细节没有详细讲解,不适合用来深入研究。学了这个,你能理解什么是编程,什么是C语言。
微信小程序开发实战
2016-09-25本套课程使用了元认知教学法,直接实战式教学,摆脱学院派的理论式讲解,对于0基础的学员可以入门编写微信小程序,过程中指导如何学习使用文档查阅接口等,通过两个完整的实战小项目的实例,入手小程序开发。
6.14MB
2019美赛ABCDEF题题目(附C题数据)
2019-01-312019美赛题目,完全是从官网下载,无翻译,可使用有道软件翻译浏览
C/C++程序员实战基础
2019-08-20
-
学院
微信支付2021系列之付款码支付一学就会java版
微信支付2021系列之付款码支付一学就会java版
-
学院
程序设计也要懂点心理学
程序设计也要懂点心理学
-
博客
Zabbix5.0部署PDF Report现在PHP源代码问题解决
Zabbix5.0部署PDF Report现在PHP源代码问题解决
-
下载
无提示::rocket:超快速且极少的shell提示-源码
无提示::rocket:超快速且极少的shell提示-源码
-
学院
ProBuilder快速原型开发技术
ProBuilder快速原型开发技术
-
学院
手势解锁-canvas-javascript实战
手势解锁-canvas-javascript实战
-
学院
Spring Boot2.X仿朋友圈PC版系统实战_架构1.0
Spring Boot2.X仿朋友圈PC版系统实战_架构1.0
-
博客
【软件创新实验室2021年寒假集训】Java后端开发漫谈及感悟分享
【软件创新实验室2021年寒假集训】Java后端开发漫谈及感悟分享
-
博客
validateStatus
validateStatus
-
博客
如何在 ASP.Net Core MVC 中实现文件上传
如何在 ASP.Net Core MVC 中实现文件上传
-
下载
云台:Web性能审核工具-源码
云台:Web性能审核工具-源码
-
博客
H.264编码原理
H.264编码原理
-
学院
AI-人脸口罩识别特训营
AI-人脸口罩识别特训营
-
博客
cs反序列化1
cs反序列化1
-
学院
rabbitmq-stomp服务端推送技术
rabbitmq-stomp服务端推送技术
-
博客
微信红包皮肤序列号哪里有?
微信红包皮肤序列号哪里有?
-
博客
免费不限次数的文字转语音小程序
免费不限次数的文字转语音小程序
-
下载
matlab爬取火车票信息.zip
matlab爬取火车票信息.zip
-
博客
Python模块(第十五讲)
Python模块(第十五讲)
-
学院
算法导论二(排序和顺序统计量)——编程大牛的必经之路
算法导论二(排序和顺序统计量)——编程大牛的必经之路
-
下载
cudnn7.4版本(对应CUDA10.0)
cudnn7.4版本(对应CUDA10.0)
-
学院
转行做IT-第10章 常用类-String、static、Array等
转行做IT-第10章 常用类-String、static、Array等
-
博客
信息学奥赛一本通1356:计算(calc) (栈)
信息学奥赛一本通1356:计算(calc) (栈)
-
博客
定义一个3行3列的二维数组,从键盘输入9个数的值。输出其中最大值和最小值及其所在的行列坐标。
定义一个3行3列的二维数组,从键盘输入9个数的值。输出其中最大值和最小值及其所在的行列坐标。
-
下载
WebViewHook:公开的Unity Editor WebView API-源码
WebViewHook:公开的Unity Editor WebView API-源码
-
博客
C/C++ 二进制转十进制
C/C++ 二进制转十进制
-
学院
WPF上位机数据采集与监控系统零基础实战
WPF上位机数据采集与监控系统零基础实战
-
学院
商业的本质——杰克·韦尔奇著
商业的本质——杰克·韦尔奇著
-
博客
一键式统计6.0通透
一键式统计6.0通透
-
学院
Python专题精讲 文件目录与系统参数操作
Python专题精讲 文件目录与系统参数操作