最近闲着没事,就随意浏览博客,突然发现了一种模拟键盘输入的办法(之前一直想破脑袋的都没有想到的),然后借此机会说明一下。
具体实现方法
1)借用粘贴板
这是比较容易想到的,也最受程序员鄙视的一种办法,如果你实在想不到好的办法,用这种方法救救急还是可以的,具体代码可以参照MSDN。(当然,此法有一个好处,不用处理英文和中文的区别,直接无脑复制过去即可)
2)利用SendInput来模拟
这种就是模拟输入法输入的过程,需要处理中文编码的问题(本人对于编码不是太在行,所以就不多做解释了,直接看代码吧)
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;
std::wstring stringToWstring(const std::string& str)
{
LPCSTR pszSrc = str.c_str();
int nLen = MultiByteToWideChar(CP_ACP, 0, pszSrc, -1, NULL, 0);
if (nLen == 0)
return std::wstring(L"");
wchar_t* pwszDst = new wchar_t[nLen];
if (!pwszDst)
return std::wstring(L"");
MultiByteToWideChar(CP_ACP, 0, pszSrc, -1, pwszDst, nLen);
std::wstring wstr(pwszDst);
delete[] pwszDst;
pws