#include <Windows.h>
#include <string>
#include <locale>
#include <iostream>
#include <codecvt>
#include <cmath>
#include <stdlib.h>
#include <time.h>
using namespace std;
// 全局变量,用于存储窗口句柄
HWND hwnd = NULL;
// 初始化窗口句柄
void initializeWindow(const string& windowTitle) {
hwnd = FindWindowA(NULL, windowTitle.c_str());
if (hwnd == NULL) {
MessageBoxA(NULL, "未找到指定窗口", "错误", MB_ICONERROR);
}
}
// 模拟 Ctrl + Enter 发送换行
void sendCtrlEnter() {
// 模拟按下 Ctrl 键
keybd_event(VK_CONTROL, 0, 0, 0);
// 模拟按下 Enter 键
keybd_event(VK_RETURN, 0, 0, 0);
// 模拟释放 Enter 键
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
// 模拟释放 Ctrl 键
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
}
// 发送字符串到全局变量指定的窗口
void sendText(const string& text) {
if (hwnd == NULL) {
MessageBoxA(NULL, "窗口句柄无效", "错误", MB_ICONERROR);
return;
}
wstring_convert<codecvt_utf8_utf16<wchar_t>> converter;
wstring wtext = converter.from_bytes(text);
// 确保窗口在前台
SetForegroundWindow(hwnd);
SetFocus(hwnd);
// 确保窗口处理时间
Sleep(500); // 500毫秒
// 发送每个字符
for (wchar_t ch : wtext) {
if (ch == L'\n') {
// 模拟 Ctrl + Enter 换行
sendCtrlEnter();
} else {
// 发送普通字符
SendMessageW(hwnd, WM_CHAR, ch, 0);
}
Sleep(50); // 延迟,确保字符被处理
}
// 模拟按下回车键
SendMessage(hwnd, WM_KEYDOWN, VK_RETURN, 0);
SendMessage(hwnd, WM_KEYUP, VK_RETURN, 0);
}
int main()
{
srand(static_cast<unsigned int>(time(0)));
char let1 = 'A' + rand() % 26;
char let2 = 'A' + rand() % 26;
int jueduizhi = std::abs(static_cast<int>(let1) - static_cast<int>(let2));
initializeWindow("haha");
string coki = "第一个随机字母为:" + string(1, let1) + " 第二个随机字母为: " + string(1, let2) + "\n两个随机的字母ASCII码的差值为: " + to_string(jueduizhi);
cout<<coki<<endl;
sendText(coki);
return 0;
}
写的一个小代码,是输出到微信的,输出的是乱码,但是在别人电脑上正常输出
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 一轮明月照丘壑 2024-09-26 22:37关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
根据你提供的代码和描述,看起来你在一个特定的电脑上运行这段代码时遇到了乱码的问题,而在其他电脑上运行则没有问题。这个问题可能由以下几个原因引起:
- 编码问题:你的代码在处理字符串时使用了特定的编码(如UTF-8)。如果目标系统的默认编码不是UTF-8,可能会出现乱码。确保目标系统的编码设置与你的代码一致。
- 字符集问题:你使用了非ASCII字符,如果这些字符在你的系统上是有效的但在另一台电脑上不被识别,会导致乱码。检查目标系统是否支持这些字符。
- 操作系统或库的差异:不同的操作系统或库版本可能会导致行为差异。确保你的代码与目标系统的库和API兼容。
- 随机性问题:你的代码中使用了随机数生成器。虽然这可能是导致乱码的一个因素,但通常这种随机性不会导致乱码,除非它与特定的系统特性产生了冲突。
针对这个问题,你可以尝试以下解决方案:
- 检查系统编码设置:确保你的代码和系统使用相同的编码。
- 检查目标系统的兼容性:确保目标系统支持你使用的所有字符和API。
- 简化代码:尝试简化你的代码,特别是与发送文本和窗口操作相关的部分,看是否可以解决问题。
- 查看详细的错误消息:调试时查看控制台输出的任何错误消息,这可能会提供有关问题的线索。
- 使用跨平台的库或工具:考虑使用跨平台的库或工具来确保代码在所有系统上都能正确运行。
由于你没有提供关于目标系统的详细信息(如操作系统版本、使用的库版本等),因此很难确定确切的问题所在。如果可能的话,提供更多关于目标系统的信息将有助于更准确地诊断问题。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见
- ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
- ¥20 sentry如何捕获上传Android ndk 崩溃
- ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
- ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?