写了一个智障代码,输入英文,就可以在画图(mspaint)上转成图像上的一个个像素。
以下是一个例子:Hello,world!会被画成这样:
代码如下( 很可能,不对,是几乎肯定不兼容,因为太智障。语言:C++):
#include<iostream>
#include<windows.h>
using namespace std;
int i;
string s;
void PressKey(WORD key)
{
// 创建一个KEYBDINPUT结构体,用于描述一个键盘事件
KEYBDINPUT keyboardInput = { 0 };
// 设置要模拟的按键
keyboardInput.wVk = key;
// 创建一个INPUT结构体,用于描述一个用户输入事件
INPUT input = { 0 };
// 设置输入类型为键盘事件
input.type = INPUT_KEYBOARD;
// 设置键盘事件的详细信息
input.ki = keyboardInput;
// 模拟按键按下
SendInput(1, &input, sizeof(input));
// 设置按键为已释放
input.ki.dwFlags = KEYEVENTF_KEYUP;
// 模拟按键释放
SendInput(1, &input, sizeof(input));
}
void KeyboardPush(int x){
bool Lock=0;
int Level=100;
while(Level){
if( x / Level || Lock ) {
PressKey((char)(x / Level + '0'));
Lock=1;
//cout<<(char)(x / Level + '0')<<endl;
}
x %= Level;
Level/=10;
}
}
void MouseMove(int x,int y){
SetCursorPos(x, y);//1380,800
}
void Click(){
// 创建并发送鼠标左键按下消息
INPUT input;
ZeroMemory(&input, sizeof(INPUT));
input.type = INPUT_MOUSE;
input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1, &input, sizeof(INPUT));
// 等待一段时间后再发送鼠标左键松开消息
Sleep(100);
input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, &input, sizeof(INPUT));
}
int main() {
getline(cin,s);
Sleep(2000);
// 获取当前活动窗口的句柄
HWND hwnd = GetForegroundWindow();
while(i<s.size()){
// 设置鼠标位置为指定坐标(x, y)
MouseMove(1004, 72);//1380,800
Click();
Sleep(100);//下一次点击
// 设置鼠标位置为指定坐标(x, y)
MouseMove(907, 475);//1380,800 907,508 907,541
Click();//双击
Click();
Sleep(100);
KeyboardPush( (int) ( s[ i ++ ] ) );
Sleep(100);
// 设置鼠标位置为指定坐标(x, y)
MouseMove(907, 508);//1380,800 907,508 907,541
Click();//双击
Click();
Sleep(100);
KeyboardPush( (int) ( s[ i ++ ] ) );
Sleep(100);
// 设置鼠标位置为指定坐标(x, y)
MouseMove(907, 541);//1380,800 907,508 907,541
Click();//双击
Click();
Sleep(100);
KeyboardPush( (int) ( s[ i ++ ] ) );
Sleep(100);
// 设置鼠标位置为指定坐标(x, y)
MouseMove(466, 568);//1380,800 907,508 907,541
Click();//466,568确认
Sleep(100);
// 设置鼠标位置为指定坐标(x, y)
MouseMove(10+8*i/3-8, 168);//1380,800 907,508 907,541
Click();//绘画
Sleep(100);
}
return 0;
}