问题如下:
想弄一个自动化脚本替我干活 前台的键鼠模拟我会
但是来回切屏切程序太过繁琐
收集一个 同时操纵多个记事本的模拟键鼠操作 能绑定程序的思路
最好附代码
想实现的目的是:
例如 同时操作多个记事本程序
记事本A 书写 123456
记事本B书写 abcdef
两个记事本程序之间互不干扰且同时进行
附代码并讲解
问题如下:
想弄一个自动化脚本替我干活 前台的键鼠模拟我会
但是来回切屏切程序太过繁琐
收集一个 同时操纵多个记事本的模拟键鼠操作 能绑定程序的思路
最好附代码
想实现的目的是:
例如 同时操作多个记事本程序
记事本A 书写 123456
记事本B书写 abcdef
两个记事本程序之间互不干扰且同时进行
附代码并讲解
引自免费微信小程序:皆我百晓生
为了实现您的需求,我们可以使用C++和Windows API来创建一个后台键鼠模拟脚本。下面是一个简化的示例代码框架,展示如何同时对两个记事本窗口进行独立的键鼠操作。由于实际编写完整的、功能完善的自动化脚本会比较复杂,并且涉及到查找窗口句柄、发送消息等多个步骤,以下仅为简化版的概念性代码片段:
#include <windows.h>
#include <iostream>
// 定义窗口标题以找到对应的记事本窗口
const wchar_t* NOTEBOOK_A_TITLE = L"记事本A";
const wchar_t* NOTEBOOK_B_TITLE = L"记事本B";
// 获取窗口句柄函数(根据窗口标题)
HWND GetWindowHandle(const wchar_t* title) {
HWND hWnd = FindWindow(NULL, title);
if (hWnd == NULL) {
std::cerr << "无法找到标题为\"" << title << "\"的窗口" << std::endl;
}
return hWnd;
}
// 发送键盘消息到指定窗口
void SendKeys(HWND hWnd, const wchar_t* keys) {
for (size_t i = 0; keys[i]; ++i) {
// 转换字符到虚拟键码并发送
WPARAM wParam = VkKeyScan(keys[i]);
PostMessage(hWnd, WM_KEYDOWN, wParam & 0xFF, 0);
PostMessage(hWnd, WM_KEYUP, wParam & 0xFF, 0);
// 模拟按键间隔
Sleep(50);
}
}
int main() {
// 获取记事本窗口句柄
HWND notebookA = GetWindowHandle(NOTEBOOK_A_TITLE);
HWND notebookB = GetWindowHandle(NOTEBOOK_B_TITLE);
// 确保窗口句柄有效
if (notebookA && notebookB) {
// 分别在两个记事本中写入内容
SendKeys(notebookA, L"123456");
SendKeys(notebookB, L"abcdef");
// 添加必要的同步机制,确保同时进行(这里使用了Sleep,实际情况可能需要更复杂的同步)
Sleep(1000);
// 可选:发送回车键完成输入
PostMessage(notebookA, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(notebookA, WM_KEYUP, VK_RETURN, 0);
PostMessage(notebookB, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(notebookB, WM_KEYUP, VK_RETURN, 0);
}
return 0;
}
这段代码首先通过FindWindow
函数获取到标题分别为“记事本A”和“记事本B”的两个记事本窗口的句柄。然后,我们定义了一个SendKeys
函数向特定窗口发送键盘消息。最后,在main
函数中分别向两个记事本窗口发送键入消息。
请注意,这个示例没有包含精确的鼠标操作模拟以及窗口焦点切换逻辑,您需要进一步完善这些部分以满足实际需求。此外,模拟键鼠操作时需谨慎,以免对其他程序造成干扰或被误判为恶意行为。如果需要更复杂的交互,可以考虑使用如AutoIt等成熟的自动化工具。