无法自动化/模拟listview单击另一个进程 [英] Cannot automate/simulate listview click of another process

查看:156
本文介绍了无法自动化/模拟listview单击另一个进程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

无法自动化/模拟listview点击其他进程





我正在开发自动化工具。我想以编程方式单击另一个进程的listview项目

。我已经部分成功(与非MFC一起工作但不使用MFC目标应用程序)。我的输出略有不同。我使用了NMITEMACTIVATE(我还在
$ b $中使用了PostMessage而不是SendMessage) b代码如下。

C ++,Win32

小代码细节:



 NMITEMACTIVATE nmbh; 
nmbh.hdr.code = NM_DBLCLK;
nmbh.hdr.hwndFrom = g_hWnd;
nmbh.hdr.idFrom = GetDlgCtrlID(g_hWnd);
nmbh.iItem = itemval;
nmbh.iSubItem = 0 ;
nmbh.uNewState = 0 ;
nmbh.uOldState = 0 ;
nmbh.uChanged = 0 ;
nmbh.uKeyFlags = 0 ;
SendMessage(GetParent(g_hWnd),WM_COPYDATA,(WPARAM)g_hWnd,(LPARAM)& nmbh);

解决方案

使用PostThreadMessage向另一个线程/进程发送消息:



http://msdn.microsoft.com/en-us/library/windows/desktop/ms644946(v=vs.85).aspx [<一个href =http://msdn.microsoft.com/en-us/library/windows/desktop/ms644946(v=vs.85).aspx\"target =_ blanktitle =New Window> ^

Cannot automate/simulate listview click of another process


I am developing an automation tool. I want to click listview item of another process
programatically. I have partially succeeded in doing(works with non-MFC but not working with MFC target application).I am getting a slightly different output.I used NMITEMACTIVATE(I have also used PostMessage Instead of SendMessage in the
code below).
C++,Win32
Small code detail:

NMITEMACTIVATE nmbh;
		nmbh.hdr.code = NM_DBLCLK;
		nmbh.hdr.hwndFrom=g_hWnd;
		nmbh.hdr.idFrom=GetDlgCtrlID(g_hWnd);
		nmbh.iItem=itemval;
		nmbh.iSubItem=0;
		nmbh.uNewState=0;
		nmbh.uOldState=0;
		nmbh.uChanged=0;
		nmbh.uKeyFlags=0;
	        SendMessage(GetParent(g_hWnd), WM_COPYDATA,(WPARAM)g_hWnd,(LPARAM)&nmbh);

解决方案

Use PostThreadMessage to message to another thread/process:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644946(v=vs.85).aspx[^]


这篇关于无法自动化/模拟listview单击另一个进程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆