最近写VBA程序,点击treeview控件的节点,只能用windows的api函数mouse_event,但是window系统锁屏的时候,mouse_event函数会被屏蔽,在网上找了半天,找到代码注入的方法,但在VBA里createremotethread时候,被注入的进程会崩溃,具体原因不太清楚。 最后用C++试了下WM_LBUTTONDBLCLK,竟然有作用,而同样的代码在VBA无效....,下面是C++代码,测试有效
#include "stdafx.h"
#include "windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
HWND hTree =(HWND)_ttoi(argv[1]);
::SetForegroundWindow(hTree);
::SetFocus(hTree);
POINT pt={0};
pt.x = _ttoi(argv[2]);
pt.y = _ttoi(argv[3]);
::ClientToScreen(hTree,&pt);
::SetCursorPos(pt.x,pt.y);
::Sleep(500);
::PostMessage(hTree,WM_LBUTTONDOWN,MK_LBUTTON,MAKELPARAM((

本文介绍了如何在C++中使用WM_LBUTTONDBLCLK消息模拟点击treeview控件的节点,解决了VBA中使用mouse_event函数在系统锁屏时失效的问题。通过设置光标位置并发送消息,实现了跨进程的节点双击操作。

2974

被折叠的 条评论
为什么被折叠?



