标签:name 后缀 ace 二维码 设置 程序员 link 联想 原理
vbs脚本实现模拟键盘输出13种语言拜年,朗读拜年语音,之后打开浏览器显示支付宝收钱码,索要红包(厚脸皮
vbs拜年文件直接下载传送门,喜欢干货的可以直接出发了
玩vbs有一段时间了,对原理感兴趣的可以看一下我上一篇vbs的博客,这篇我会讲的快一点,没有基础的话可能理解有点困难,上一篇传送门
#include<iostream>
#include<fstream>
using namespace std;
int main() {
ifstream ifile;
ifile.open("D:\\in.txt");
ofstream ofile;
ofile.open("D:\\out.txt");
char str[100];
while (ifile.getline(str, 100)) {
if (str[0] == '\0') {
ofile << "WS.SendKeys \"{ENTER}\"" << endl << endl<<endl;
}
else {
for (int i(0); i < strlen(str); i++) {
ofile << "WScript.Sleep AutoTime" << endl;
if(str[i] == '{') {
ofile << "WS.SendKeys \"";
do{
ofile << str[i];
} while (str[i++] != '}');
ofile <<"\""<<endl;
i--;
}
else {
ofile << "WS.SendKeys \"";
if (str[i] == '\"')
ofile << "\"\"\"" << endl;
else if (str[i] == '(' || str[i] == ')')
ofile << '{' << str[i] << '}' << "\"" << endl;
else ofile << str[i] << "\"" << endl;
}
}
ofile << "WScript.Sleep 1000" << endl;
ofile << "WS.SendKeys \"{ENTER}\"" << endl << endl << endl;
}
}
ofile.close();
ifile.close();
return 0;
}
AutoTime是两个键之间的敲击间隔,可以自由设置,具体看下文
CreateObject("SAPI.SpVoice").Speak"过年好啊,我要用13种语言给您拜年啦"
Dim AutoTime
AutoTime = 50
Set WS=WScript.CreateObject("WScript.Shell")
WS.run("notepad"),3
WScript.Sleep 500
WS.AppActivate("notepad")
WS.SendKeys "+"
第一行朗读拜年内容,可以自己设置,从第二行到最后都是为了模拟键盘输入做准备,建立对象,设置间隔变量AutoTime,打开记事本,停顿0.5s,获取记事本焦点(这个非常重要),切换输入法为英文WS.SendKeys "+"
这个是模拟键盘按shift
的意思,因为我们要用代码拜年,开头就是用英文写的
print_r('+xinniankuaile1+');
var_dump('+xinniankuaile1+');
NSLog(@"+xinniankuaile1+");
System.out.println("+xinniankuaile1+");
console.log("+xinniankuaile1+");
print("+xinniankuaile1+");
printf("+xinniankuaile1+");
cout<<"+xinniankuaile1+"<< endl;
Console.WriteLine("+xinniankuaile1+");
fmt.Println("+xinniankuaile1+");
Response.Write("+xinniankuaile1+");
alert("+xinniankuaile1+")
echo"+xinniankuaile1+"
顺便说一下,我们要显示的东西时这样子的
print_r('新年快乐');
var_dump('新年快乐');
NSLog(@"新年快乐");
System.out.println("新年快乐");
console.log("新年快乐");
print("新年快乐");
printf("新年快乐");
cout<<"新年快乐"<< endl;
Console.WriteLine("新年快乐");
fmt.Println("新年快乐");
Response.Write("新年快乐");
alert("新年快乐")
echo"新年快乐"
以第一行in的文件为例print_r(‘+xinniankuaile1+‘);
,括号中出现的+号如上文所说,代表shift键,前面已经切成了英文输入法,现在再切回去,打xinniankuaile,因为输入法自带的联想词语功能,新年快乐就出现在了第一个(按说谁的输入法都会这样,按说,,,),然后按1就正好打出了汉字“新年快乐”,在上一篇博客已经说过了,vbs是不能直接模拟键盘输入中文的,因为键盘上没有中文键(什么沙雕逻辑),所以只能用这种看起来符合日常习惯的方法进行模拟输入,把新年快乐敲出来以后再一个+,把输入法切回英文,下面的同理
保存以后运行“模拟键盘代码生成器”,这时候D盘就多了out.txt文件,打开以后出现的7,8百行代码就是我们需要的东西(对,就是这么多,你以为呢),把这个文件中的所有代码复制,粘贴到我们上一步新建立的vbs文件中
CreateObject("SAPI.SpVoice").Speak"祝您猪年诸事大吉,身体健康,万事如意,恭喜发财,红包拿来,扫码即可哦"
WScript.Sleep 200
Sleep 是暂停,暂停200ms,给系统一点反应时间,不然会出bug,下面我们做支付宝收钱码链接
先把收钱码上传到图床(可以把自己的图片挂在网上)上面,图床传送门
根据提示上传好后,保存链接备用
继续,跟着上面的内容,键入以下代码
link()
Function link()
Set Seven = WScript.CreateObject("WScript.Shell")
strDesktop = Seven.SpecialFolders("Desktop")
set oShellLink = Seven.CreateShortcut(strDesktop & "\Titordong.url")
oShellLink.TargetPath = "https://ww1.sinaimg.cn/large/007i4MEmgy1fzviwg4l7uj30u01aoag3.jpg"
oShellLink.Save
Set oShellLink=Nothing
strDesktop = Seven.SpecialFolders(4)
mypath=strDesktop&"\Titordong.url"
Seven.run mypath
End Function
第一句是调用函数,后面是函数的内容,用来实现,在桌面创建一个快捷方式并自动打开,显示你的支付宝收钱码,注意这行
oShellLink.TargetPath = "https://ww1.sinaimg.cn/large/007i4MEmgy1fzviwg4l7uj30u01aoag3.jpg"
这后面的链接,是我的收钱码在图床上的链接,这时候就把刚才保存的你自己的收钱码链接替换上去,就成自己的了!
搞定收工,保存退出,双击运行即可,记得在运行时鼠标不要点击任何地方,会出bug,学会的小伙伴们,可以拿去给别人拜年收钱了(233
模拟键盘输入科技感十足,有一小部分小伙伴电脑不能运行,呜呜,没办法了,正常情况下windows都可以直接运行的
2019/2/5 15:42:19
标签:name 后缀 ace 二维码 设置 程序员 link 联想 原理
原文地址:https://www.cnblogs.com/Titordong/p/10352799.html