前言(不支持中文输入)

这学期英语课用了优课联盟,第一次发现竟然还有不让粘贴的作文???但是身为一个半吊子程序员,能偷懒绝不自己动手,这种事情当然直接让计算机来就好了(ノ◕ω◕)ノ

前提

最主要的两个模块就是文件读取和模拟键盘,这样就可以将一个文件打出来了。
新建一个txt文件,保存要粘贴的内容,运行程序,选择文件,准备好了打个ok,读秒开始后三秒内光标点在要打字的地方,so easy!

1.文件读取

首先是弹出文件选择对话框,使用BROWSEINFO
这个解释多一些
然后就是读取文件,使用ifstream,这个就不放链接了,一搜很多解释的

2.模拟键盘

其实就两行

keybd_event("键码",0,0,0);//按下
keybd_event("键码",0,KEYEVENTF_KEYUP,0);//松开

就是和人按键盘一样
通过修改键码,我们就可以让计算机按不同的键
如果是组合键,就像下面这样:

keybd_event("键码1",0,0,0);//按下
keybd_event("键码2",0,0,0);//按下
keybd_event("键码2",0,KEYEVENTF_KEYUP,0);//松开
keybd_event("键码1",0,KEYEVENTF_KEYUP,0);//松开

上完整代码

#include <bits/stdc++.h>
#include <Windows.h>
#include<Shlobj.h>
#include<CommDlg.h>
#include <string>
#include <fstream>
using namespace std;
#define ll long long
int l=0;//读取文件的s长度
string s[100000];//存储文件,可以更大
void OpebFile()
{TCHAR szBuffer[MAX_PATH] = {0};BROWSEINFO bi;ZeroMemory(&bi,sizeof(BROWSEINFO));bi.hwndOwner = NULL;bi.pszDisplayName = szBuffer;bi.lpszTitle = ("从下面选择文件或文件夹:");bi.ulFlags = BIF_BROWSEINCLUDEFILES;LPITEMIDLIST idl = SHBrowseForFolder(&bi);if (NULL == idl){return;}SHGetPathFromIDList(idl,szBuffer);//转换文件路径cout <<"获得文件路径"<<endl;ifstream myfile(szBuffer);//这个就是文件名if (!myfile.is_open()){cout << "未成功打开文件" << endl;}while(getline(myfile,s[l]))//逐行读取{l++;}myfile.close();cout <<"已读取文件"<<endl;}
void Big(char s)//大写字母
{if(!GetKeyState(VK_CAPITAL))//这个可以自行实验一下,看大写锁定不同情况的输出keybd_event(VK_CAPITAL,0,0,0);keybd_event(VK_CAPITAL,0,KEYEVENTF_KEYUP,0);int n=s-'A'+65;keybd_event(n,0,0,0);keybd_event(n,0,KEYEVENTF_KEYUP,0);keybd_event(VK_CAPITAL,0,0,0);keybd_event(VK_CAPITAL,0,KEYEVENTF_KEYUP,0);
}
void Small(char s)//小写字母
{if(GetKeyState(VK_CAPITAL))keybd_event(VK_CAPITAL,0,0,0);keybd_event(VK_CAPITAL,0,KEYEVENTF_KEYUP,0);int n=s-'a'+65;keybd_event(n,0,0,0);keybd_event(n,0,KEYEVENTF_KEYUP,0);
}
void Number(char s)//数字,注意小键盘和主键盘数字代码不一样
{int n=s-'0'+48;keybd_event(n,0,0,0);keybd_event(n,0,KEYEVENTF_KEYUP,0);
}void Symbols(char s)//符号
{if(s==' '){keybd_event(32,0,0,0);keybd_event(32,0,KEYEVENTF_KEYUP,0);}if(s==';'){keybd_event(186,0,0,0);keybd_event(186,0,KEYEVENTF_KEYUP,0);}else if(s==':'){keybd_event(16,0,0,0);keybd_event(186,0,0,0);keybd_event(186,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s==','){keybd_event(188,0,0,0);keybd_event(188,0,KEYEVENTF_KEYUP,0);}else if(s=='<'){keybd_event(16,0,0,0);keybd_event(188,0,0,0);keybd_event(188,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='>'){keybd_event(16,0,0,0);keybd_event(190,0,0,0);keybd_event(190,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='.'){keybd_event(190,0,0,0);keybd_event(190,0,KEYEVENTF_KEYUP,0);}else if(s=='"'){keybd_event(16,0,0,0);keybd_event(222,0,0,0);keybd_event(222,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='\''){keybd_event(222,0,0,0);keybd_event(222,0,KEYEVENTF_KEYUP,0);}else if(s=='('){keybd_event(16,0,0,0);keybd_event(57,0,0,0);keybd_event(57,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s==')'){keybd_event(16,0,0,0);keybd_event(48,0,0,0);keybd_event(48,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='['){keybd_event(219,0,0,0);keybd_event(219,0,KEYEVENTF_KEYUP,0);}else if(s==']'){keybd_event(221,0,0,0);keybd_event(221,0,KEYEVENTF_KEYUP,0);}else if(s=='{'){keybd_event(16,0,0,0);keybd_event(219,0,0,0);keybd_event(219,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='}'){keybd_event(16,0,0,0);keybd_event(221,0,0,0);keybd_event(221,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='!'){keybd_event(16,0,0,0);keybd_event(49,0,0,0);keybd_event(49,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='$'){keybd_event(16,0,0,0);keybd_event(52,0,0,0);keybd_event(52,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='?'){keybd_event(16,0,0,0);keybd_event(191,0,0,0);keybd_event(191,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}else if(s=='-'){keybd_event(189,0,0,0);keybd_event(189,0,KEYEVENTF_KEYUP,0);}
}
void Print()
{cout << "is ok?"<<endl;string s2="";while(s2!="ok")cin>>s2;cout<<"光标指向要输入位置"<<endl;cout <<"3秒后开始"<<endl;for(int i=3;i>=1;i--)//留一点准备时间,可以自行加长{cout <<i<<endl;Sleep(1000);}for(int i=0;i<l;i++){ll l2=s[i].length();for(int j=0;j<l2;j++){if(('a'<=s[i][j])&&(s[i][j]<='z')) Small(s[i][j]);else if('A'<=s[i][j]&&s[i][j]<='Z') Big(s[i][j]);else if('0'<=s[i][j]&&s[i][j]<='9') Number(s[i][j]);else Symbols(s[i][j]);}keybd_event(13,0,0,0);//换行keybd_event(13,0,KEYEVENTF_KEYUP,0);}
}
int main()
{OpebFile();Print();return 0;
}

符号不够的话自行搜索键码(keyCode)然后再添加

别问我为什么只有英文,毕竟我只是写英语作文

好吧我承认中文好像很麻烦的样子,应该要加上文字识别,我太菜了不会

学习通、优课联盟不让粘贴?那就让计算机帮你手打!相关推荐

  1. 优课联盟新视野英语(6-10)

    优课联盟新视野英语(6-10)

  2. 人工智能与信息社会 超星学习通 网课 题库 大全 最全 中国大学 MOOC 北京大学 考试 题目 答案

    [单选题]2016年3月,人工智能程序()在韩国首尔以4:1的比分战胜的人类围棋冠军李世石. • A.AlphaGo • B.DeepMind • C.Deepblue • D.AlphaGo Zer ...

  3. 优课联盟 实境英语Test for Unit 2

    Test for Unit 2 一.单选题 (共 80.00 分) 1. Which description is more polite? A. She is quite fat. B. She i ...

  4. 优课联盟 实境英语 Test for Unit 9

    Test for Unit 9 一.单选题 (共 20.00 分) 1. The word "light" includes the sound_________ A. /l/ B ...

  5. 优课联盟 实境英语 Test for Unit 5

    Test for Unit 5 一.单选题 (共 80.00 分) 1. John is a nice guy, isn't he? (降调) This question tag ____. A. a ...

  6. 优课联盟 实境英语 Test for Unit 10

    Test for Unit 10 一.单选题 (共 20.00 分) 1. You can pay tips of your bill for lunch. A. 6% B. 12% C. 22% 满 ...

  7. 优课联盟 实境英语 Test for Unit 8

    Test for Unit 8 一.单选题 (共 40.00 分) 1. Choose the –s ending that does not have the same sound as the o ...

  8. 计算机应用技术python_大学计算机应用技术02PythonB2020学习通app网课答案

    大学计算机应用技术02PythonB2020学习通app网课答案 更多相关问题 结合个体表型值与家系均值进行的选择叫()A.个体选择B.家系选择C.家系内选择D.合并选择 形态呈鼓棰状的微生物是()A ...

  9. 人文英语学习品牌「友邻优课」携手神策数据 精细化数据分析让每一次互动都有价值

    近日,俞敏洪力荐的人文英语学习品牌「友邻优课」签约神策数据.未来神策将以第三方数据分析平台的形式,进一步加强「友邻优课」APP 的产品体验,不断进行产品和服务的创新与突破,切实实现业务的良性高速增长. ...

最新文章

  1. #define宏定义中的#,##,@#,\ 这些符号的神奇用法
  2. IDEA查看Java源码
  3. 很漂亮个人主页自带音乐源码
  4. 在mac os中设置环境变量
  5. tensorflow2.1学习--认识张量和常用函数二
  6. ACL2021 | 知识对比:基于外部知识的图神经虚假新闻检测
  7. 海马苹果助手ipad版_资源分享苹果越狱工具
  8. 【《离散数学》试卷(A)】离散数学期末考试题——分享篇——题目完善、答案详尽【推荐学习】
  9. GTP协议中的APN,TEID,NSAPI,TID
  10. 无人机无线电干扰原理概论
  11. 中兴服务器bios启动顺序设置,主板四大品牌BIOS设置开机第一启动项图文教程
  12. 交易apple id但是忘了关闭icloud,如何关闭激活锁?
  13. 0基础学python,聊聊这半年我是如何自学编程
  14. 【人工智能】人工智能发展简史 | 复习笔记
  15. 深度学习领域引用量最多的前20篇论文简介
  16. 如何做好用户故事地图?
  17. reactor模式学习
  18. 一点资讯signature分析
  19. 5g服务器优势特点详解
  20. APT(Advanced Packaging Tool)

热门文章

  1. springcloud入门
  2. 曾经写的俄罗斯方块源码 2021-06-13
  3. 初二计算机考试作文,初二考场作文汇总5篇
  4. 3D网游中人物的碰撞后反应控制
  5. 怎样记住英语单词的意思
  6. Android USB Camera
  7. 程序员这个职业已经不香了吗?从业10年程序员告诉你真实情况
  8. os中的判断文件是否存在
  9. Scott Hanselman的2006 Windows最终开发者和高级用户工具列表
  10. Windows 平台下面的IOCP技术 Linux下面Epoll 还有FreeBSD下面Kqueue的应用了。跨平台库行业里面最出名的莫过于ACE、ASIO(Boos公司)两大支持库支持IOCP