c++ - 读取 UTF-8 文件,使用 SendInput 将内容传递给其他应用程序
问题描述
解决方案
UTF-8 和 Windows 不是好朋友。几乎所有你要用 Windows 做的事情都需要 UTF-16。您需要将 UTF-8 字符串转换为 UTF-16。在 Windows 上,这将是“wstring”,但您应该使用正确的转换例程。唉,C++ 标准现在不能为您提供一个可以工作的标准,因此特定于 Windows 的标准
MultiByteToWideChar
似乎是一个不错的选择。-
ip.ki.dwFlags = KEYEVENTF_UNICODE; if (isupper(c)) { ip.ki.wVk = VK_LSHIFT;
这种方式行不通。
如果 dwFlags 成员指定 KEYEVENTF_UNICODE,则 wVk 必须为 0。
Unicode 字符不能与 Shift 或其他修饰符组合。它们不是关键代码,它们是字符。
A
和a
是不同的字符,无需发送移位按键来区分它们。您也不需要VkKeyScanA
,因为您要发送 Unicode 字符,而不是扫描代码。
推荐阅读
- python - Python 多个 if else 函数并返回
- laravel - 如果另一个相关表 laravel 查询生成器中不存在该表,如何从表中获取记录
- google-bigquery - 在 Power BI 中使用 BigQuery 重复/嵌套字段
- gradle - 如何在外部文件中定义函数?
- java - 如何为 createNewToken 方法编写测试方法?
- python - Python:默认使用私有静态方法
- python - 按列拆分 CSV
- android - 通过单击日历事件通知进行重定向
- r - 覆盖 strptime() 中的默认语言环境
- angular - primeng 给出了找不到模块'@angular/http'