pc微信聊天窗口发送CTRL+V奇怪的问题

@vzch 轮子哥怎么关注这么奇怪的问题了。
做微信群发的吧! 既然你是易语言,给你一个易语言版本。
要注入线程,共享键盘的,调用虚拟键盘。
易语言通过PostMessageA消息群发微信窗口-虚拟键盘方式
不占用键盘和鼠标,真正的独家发布。
demo的代码自行完善。
======DLL调用==================
.版本 2
.DLL命令 GetWindowThreadProcessId, 整数型, "user32", "GetWindowThreadProcessId"
.参数 hWnd, 整数型, , 0
.参数 lpdwProcessId, 整数型, , 0
.DLL命令 AttachThreadInput, 逻辑型, "user32", "AttachThreadInput"
.参数 idAttach, 整数型, , 0
.参数 idAttachTo, 整数型, , 0
.参数 fAttach, 整数型, , 0
.DLL命令 GetCurrentThreadId, 整数型, "kernel32.dll", "GetCurrentThreadId", , 获取当前线程一个唯一的线程标识符
.DLL命令 PostMessageA, 整数型, "user32.dll", "PostMessageA", , 将一条消息投递到指定窗口的消息队列。投递的消息会在Windows事件处理过程中得到处理。在那个时候,会随同投递的消息调用指定窗口的窗口函数。特别适合那些不需要立即处理的窗口消息的发送。如消息投递成功,则返回TRUE(非零)。会设置GetLastError。
.参数 hWnd, 整数型, , 接收消息的那个窗口的句柄。如设为HWND_BROADCAST,表示投递给系统中的所有顶级窗口。如设为零,表示投递一条线程消息(参考PostThreadMessage)
.参数 Msg, 整数型, , 消息标识符
.参数 wParam, 整数型, , 具体由消息决定
.参数 lParam, 整数型, , 具体由消息决定
.DLL命令 SetKeyboardState, 逻辑型, "user32", "SetKeyboardState"
.参数 lpKeyState, 字节型, 数组, 0
.DLL命令 GetKeyboardState, 逻辑型, "user32", "GetKeyboardState"
.参数 lpKeyState, 字节型, 数组, 0
.DLL命令 GetKeyState, 整数型, "user32", "GetKeyState"
.参数 nVirtKey, 整数型, , 0
======常量===============
.版本 2
.常量 WM_KEYDOWN, "256", , 按下一个键
.常量 WM_KEYUP, "257", , 释放一个键
======子程序=================
.版本 2
.子程序 wxPM, , , 把剪贴板内容头投递到微信里面
【pc微信聊天窗口发送CTRL+V奇怪的问题】 .参数 hwnd, 整数型, , 微信群窗口句柄
.局部变量 tid, 整数型
.局部变量 key, 字节型, , "256"
hwnd = 265104 \u0026#39; 设置句柄
tid = GetWindowThreadProcessId (hwnd, 0) \u0026#39; 获取微信窗口进程标识
AttachThreadInput (GetCurrentThreadId (), tid, 1) \u0026#39; 注入线程,共享消息队列,
GetKeyboardState (key) \u0026#39; 取得键盘上每个虚拟键当前的状态
key = 128 \u0026#39; 按下ctrl
SetKeyboardState (key) \u0026#39; 设置每个虚拟键当前在键盘上的状态
PostMessageA (hwnd, #WM_KEYDOWN, #V键, 0) \u0026#39; 触发按下V键
PostMessageA (hwnd, #WM_KEYUP, #V键, 0) \u0026#39; 触发弹起V键
PostMessageA (hwnd, #WM_KEYDOWN, #回车键, 0) \u0026#39; 触发按下回车键
\u0026#39; PostMessageA (hwnd, #WM_KEYUP, #回车键, 0)

■网友
没研究过微信PC端,所以这只是一个猜想:假如微信PC端针对Ctrl+V组合键的检测是采取“当收到V键弹起消息时检测Ctrl键是否按下(比如GetKeyState),如此时Ctrl键按下,则做Ctrl+V组合键处理,否则就把V键消息做字符输入处理”时,你的PostMessage消息模拟非但不起作用,还会丢过去一个char消息:FYI,小写字母v的ASCII码刚好是118。


    推荐阅读