zoukankan      html  css  js  c++  java
  • 程序员花式拜年脚本

    程序员花式拜年脚本

    目标

    vbs脚本实现模拟键盘输出13种语言拜年,朗读拜年语音,之后打开浏览器显示支付宝收钱码,索要红包(厚脸皮
    vbs拜年文件直接下载传送门,喜欢干货的可以直接出发了

    准备

    玩vbs有一段时间了,对原理感兴趣的可以看一下我上一篇vbs的博客,这篇我会讲的快一点,没有基础的话可能理解有点困难,上一篇传送门

    • 记事本

      老规矩了,记事本写vbs
    • 模拟键盘代码生成器

      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] == '') {
    			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是两个键之间的敲击间隔,可以自由设置,具体看下文

    开工

    • 创建vbs文件,做初步准备

    在桌面创建记事本文件,改扩展名为vbs,不会改后缀名的请去百度,键入以下代码

    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的意思,因为我们要用代码拜年,开头就是用英文写的

    • 生成模拟键盘vbs代码

    懂c++的同学可能已经注意到了,上面的“模拟键盘代码生成器”中涉及到了一个in.txt文件和一个out.txt文件,in就是要显示的文件,而out用来存放根据in生成的vbs代码,接下来在D盘创建in.txt(out.txt程序会自动生成,不用手动创建),键入以下内容,保存关闭

    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

  • 相关阅读:
    白盒测试方法
    单元测试 集成测试 系统测试
    快慢指针原理和应用
    实例方法,类方法,静态方法区别
    查找算法
    排序算法整理
    Oracle sql developer 删表时遇到问题unique/primary keys in table referenced by foreign keys
    剑指 Offer 18. 删除链表的节点(简单)
    剑指 Offer 17. 打印从1到最大的n位数(简单)
    Cyberdebut的补题列表
  • 原文地址:https://www.cnblogs.com/Titordong/p/10352799.html
Copyright © 2011-2022 走看看