Java实现微信刷屏(2)

Java实现微信刷屏(2)Java实现微信轰炸升级版,支持自定义输入次数和间隔时间

大家好,又见面了,我是你们的朋友全栈君。

前天我们做了Java实现微信轰炸,一开始用的很趁手,但慢慢发现每次调试程序的太麻烦了,而且容易引发错误。所以这一次我们继续升级微信轰炸。

升级原因

上面简略说明了升级原因,但还有一个原因就是“损友”虽然没有轰炸大法,但单凭手速就能打的我淬不及防,而此时我还在调试程序,没有任何还手的余地。结果程序又因为手速较慢,原有的代码被轰炸的乱七八糟。所以,我连夜升级了微信轰炸。

升级思路

因为我的Java水平不高,界面目前不会做,就先用控制台吧。

  1. 先调用Scanner库并且配置Scanner
  2. 然后用s.next()的形式输入str(轰炸内容)
  3. 在声明一个code变量,用s.nextInt()输入code(轰炸次数)
  4. 最后声明一个time变量,依旧用s.nextInt()输入time(间隔时间)

此处代码

Scanner s = new Scanner(System.in);
System.out.println("请输入轰炸内容:");
String str = s.next();
System.out.println("请输入轰炸次数:");
int code = s.nextInt();
System.out.println("请输入轰炸间隔(毫秒):");
int time = s.nextInt();

原计划到此为止,但突然想起因为时间计算的不到位而导致代码被轰炸的“惨案”,所以又声明了cnt=5;

  1. 声明cnt,表示现在据轰炸开始剩余时间,默认为5000(毫秒,也就是5秒)
  2. 用for循环的方式循环5次
  3. 输出“据轰炸开始还有cnt秒”
  4. cnt–;

此处代码

int cnt=5;
for(int i=1;i<=5;i++){
    System.out.println("轰炸还有"+cnt+"秒开始...");
    robot.delay(1000);
    cnt--;
}

一开始效果很好,但后来发现我根本不知道轰炸完成了没有,或者后台进程结束了没有。因此,又加上了完成提示

  1. 在代码的最后输出“轰炸完成!”,然后输出“3秒后自动退出”
  2. 后面写上robot.delay(3000);

此处代码

System.out.println("轰炸完成!");
System.out.println("\n3秒后自动退出程序...");
robot.delay(3000);

升级后的代码

import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.KeyEvent;
import java.util.Scanner;
public class Operation {
    public static void main(String[] args) throws AWTException {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入轰炸内容:");
        String str = s.next();
        System.out.println("请输入轰炸次数:");
        int code = s.nextInt();
        System.out.println("请输入轰炸间隔(毫秒):");
        int time = s.nextInt();
        Robot robot = new Robot();
        int cnt=5;
        for(int i=1;i<=5;i++){
            System.out.println("轰炸还有"+cnt+"秒开始...");
            robot.delay(1000);
            cnt--;
        }
        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
        String[] authors = str.split("[,]");
        for (int j = 0; j < code; j++){
            for (int i = 0; i < authors.length; i++) {
                String str1 = authors[i];
                Transferable text = new StringSelection(str1);
                clip.setContents(text, null);
                robot.keyPress(KeyEvent.VK_CONTROL);
                robot.keyPress(KeyEvent.VK_V);
                robot.keyRelease(KeyEvent.VK_CONTROL);
                robot.delay(time);
                robot.keyPress(KeyEvent.VK_ENTER);
            }
        }
        System.out.println("轰炸完成!");
        System.out.println("\n3秒后自动退出程序...");
        robot.delay(3000);
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149220.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 第三单元 用python学习微积分(二十)壳层法、圆盘法求体积 (下)

    第三单元 用python学习微积分(二十)壳层法、圆盘法求体积 (下)本文内容来自于学习麻省理工学院公开课:单变量微积分-壳层法、圆盘法求体积-网易公开课一、切片法球体积(继续建立积分的思想)​如图,红色切片部分的体积这个式子取极限,则有全部面积为二、旋转立方体(solidsofrevolution)圆盘法介绍:老师先画了一条x轴上方曲线,看着像sinx,之后出题,这个曲线绕x轴一周形成一个椭圆,可以猜想,当对这个椭圆切片,可以得到一个⚪,因为图形绕x轴旋转不会改变函数值到x轴的距离,而这个距离就是这个⚪的半径。于.

  • Linux下更改文件权限[通俗易懂]

    Linux下更改文件权限[通俗易懂]目录查看文件权限修改文件权限查看文件权限查看文件权限可以通过ls-l命令查看,如下所示:如果只想查看某一个文件的权限,可以使用grep,如下所示:可以发现,每一个文件的第一个字段都是由r、w、x等10个字符构成,这10个字符所组成的字符串反映了文件的权限。在linux下,文件权限分为三种:可读权限(read)、可写权限(write)以及可执行权限(execut…

  • 通过bindservice方法开启的服务,通过什么方法解绑_controller调用多个service

    通过bindservice方法开启的服务,通过什么方法解绑_controller调用多个service绑定本地服务AndroidManifest.xml中声明服务:&lt;serviceandroid:name=".TestLocalService"&gt;&lt;intent-filter&gt;&lt;actionandroid:name="maureen.intent.action.BIND_LOCAL…

  • 关于.gitignore不起作用「建议收藏」

    关于.gitignore不起作用「建议收藏」由于公司和家里的as版本不同,倒腾了好久,但是代码到本地后build.gradle等文件做了修改,为了不影响公司版本,故家里的需要忽略这些文件的修改,想到的就是加gitignore配置,直接添加不起效果,找到如下办法:有时我们发现添加.gitignore文件后并没有忽略我们想要忽略的文件,解决方法就是清除一下缓存,原因gitignore对已经追踪(track)的文件无效,清除缓存后文件将以未追

    2022年10月21日
  • vue组件之间的传值通信(vue props 对象 默认值)

    Vue通信、传值的多种方式,详解(都是干货):一、通过路由带参数进行传值①两个组件A和B,A组件通过query把orderId传递给B组件(触发事件可以是点击事件、钩子函数等)this.$router.push({path:’/conponentsB’,query:{orderId:123}})//跳转到B②在B组件中获取A组件传递过来的参数…

  • 怎么用浏览器在线打开pdf文件_PDF文件怎么编辑

    怎么用浏览器在线打开pdf文件_PDF文件怎么编辑在web开发当中我们经常需要进行需要在线浏览PDf内容,在线嵌入动态pdf,传统的解决方法安装客户端PDF阅读器,如果是在谷歌是可以在线浏览的,因为他自身就带了一些插件,以前遇到这样的问题往往是费时又

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号