背景及效果

考试又考试,考试何其多

天天为考试,万事成蹉跎

学子皆被分数累,春去秋来没快乐

朝闻老师吼,暮闻家长火

一生考试苦几何,请君听我考试歌

暑假前有个同学要上机考日语,然而对于他这种连书的目录都没看过的人,考试,呵呵。

于是我就搞出了这个小工具。一般上机考试都是会提前发题库的,他只需要在考试的时候把题库复制到考试电脑上一份,把程序打成包,双击后台运行就好了。效果就是复制题目,然后粘贴直接出答案。

代码思路

复制的内容会存放到电脑剪切板,通过代码从剪切板拿到复制的内容,然后读题库,一行一行去比对,看是否包含拿到的词条,如果匹配成功那么就把对应的题目放入剪切板,这样再粘贴就是粘贴出的答案。以下为具体细节:

先得到剪切板,随便放点内容进去,防止程序第一次运行时,匹配的时候出现空指针异常

运行程序后,操作者会复制题目,复制的题目会保存进剪切板

开始死循环,让程序一直运行着

死循环内部,从剪切板拿到复制的题目

读取题库,一行一行的对比

当发现读到的当前行题目和得到的剪切板里的题目一致时,把对应的答案放入剪切板

这时再粘贴就会出现答案

源码

public static void main(String[] args) throws Exception {

/*

* 得到系统剪切板,并定义一个字符串放入剪切板,该字符串的目的是为了让剪切板里有点东西,防止在刚运行程序时包空指针异常

*/

//得到剪切板

Clipboard clipoard = Toolkit.getDefaultToolkit().getSystemClipboard();

//随便定义个字符串,StringSelection是剪切板可识别的字符串格式

StringSelection temp = new StringSelection("aaa");

//通过剪切板的set方法将上述字段添加进剪切板

clipoard.setContents(temp, null);

/*

* 死循环,保证程序一直运行着

* 从剪切板中拿到复制的内容

* 读取题库文件,一行一行比对

* 如果发现该行内容包含复制的词条,那么匹配成功,把该行内容中的答案部分添加进剪切板

*/

while(true) {

//得到剪切板中的内容模块

Transferable transferable = clipoard.getContents(null);

//从中匹配字符串格式,得到剪切板中的文字

String search = (String)transferable.getTransferData(DataFlavor.stringFlavor);

//读入题库文件

Scanner scanner = new Scanner(new File("d:/task.txt"));

//按行读取文件

while (scanner.hasNext()) {

String context = scanner.nextLine();

//判断改行是否包含搜索的词条

if(context.contains(search)) {

//如果包含,将改行冒号后的部分也就是答案部分放入剪切板

StringSelection selection = new StringSelection(context.split(":")[1]);

clipoard.setContents(selection, null);

}

}

//休眠一秒,防止频繁调用剪切板系统报错

Thread.sleep(1000);

}

}

难点讲解

因为这里用scanner按行读取的文件,所以在编辑题库的时候最好一道题一行,然后题目和答案之间用某个符号来做关联,方便截取答案。我是用英文冒号做的关联,所以取答案的时候用context.split("

java 监控剪切板_java利用剪切板的作弊工具相关推荐

  1. java监控数据库性能_Java:GraalVM数据库流性能

    java监控数据库性能 GraalVM是JVM块的新成员. 它是一个开源虚拟机,能够同时运行多种编程语言,例如Java,Rust和JavaScript. GraalVM还具有一个新的内部代码优化器管道 ...

  2. java作弊_java利用剪切板的作弊工具

    [TOC] 背景及效果 考试又考试,考试何其多 天天为考试,万事成蹉跎 学子皆被分数累,春去秋来没快乐 朝闻老师吼,暮闻家长火 一生考试苦几何,请君听我考试歌 暑假前有个同学要上机考日语,然而对于他这 ...

  3. java 本地剪切板_Java中剪切板的操作

    Java提供两种类型的剪贴板:系统的和本地的. (1)本地剪贴板只在当前虚拟机中有效.Java允许多个本地剪贴板同时存在,可以方便地通过剪贴板的名称来进行存取访问. (2)系统剪贴板与同等操作系统直接 ...

  4. java游戏输赢统计_java利用多线程和Socket实现猜拳游戏

    本文实例为大家分享了利用多线程和Socket实现猜拳游戏的具体代码,供大家参考,具体内容如下 实例:猜拳游戏 猜拳游戏是指小时候玩的石头.剪刀.布的游戏.客户端与服务器的"较量", ...

  5. java 特殊符号正则_java利用正则表达式处理特殊字符的方法实例

    前言 一串字符串中有特殊符号,可能会影响到相关接口业务,所以需要把字符串中的特殊字符都过滤掉 百度上面搜索大部分处理方法是通过正则表达式, 他需要处理的特殊符号都写进正则表达式中去校验, 这种方式一眼 ...

  6. java多核的利用率_java利用FutureTask、ExecutorService 在多核时代充分利用CPU运算

    java利用FutureTask.ExecutorService 在多核时代充分利用CPU运算 FutureTask.ExecutorService 相关知识,请看java,API 一个使用Futur ...

  7. java代码中 作用_Java利用开发中代码生成工具的作用

    Java利用开发中代码生成工具的作用 2010-6-5文字大小:大中小 近来,随着各种代码生成工具的不断涌现(如SpringSource的Spring Roo.Skyway Builder Commu ...

  8. java httpclient 异步请求_Java利用httpasyncclient进行异步HTTP请求

    Java利用httpasyncclient进行异步HTTP请求 前段时间有个需求在springmvc mapping的url跳转前完成一个统计的业务.显然需要进行异步的处理,不然出错或者异常会影响到后 ...

  9. java socket5源码_Java利用TCP协议实现客户端与服务器通信【附通信源码】

    进行TCP协议网络程序的编写,关键在于ServerSocket套接字的熟练使用,TCP通信中所有的信息传输都是依托ServerSocket类的输入输出流进行的. TCP协议概念 先来了解一下TCP协议 ...

最新文章

  1. Linux性能调优用这个“必杀技”,稳了!
  2. vue中使用MD5加密
  3. php python-10分钟从PHP到Python
  4. 马斯克发推警告:高级AI将操纵社交媒体,或引发第三次世界大战
  5. 出售带漏洞的设备违法吗?德国消协拟起诉一家地方零售商
  6. QT下opencv的编译和使用
  7. 企业大数据平台仓库架构建设思路
  8. product text的language dropdown list里 没有对应语言的问题
  9. docker用gpu的参数_初探Docker调用GPU
  10. 将springboot打包成的jar文件做成windows服务
  11. java yield方法_Java中的yield方法
  12. 各部件作用计算机,计算机硬件有哪些部件,各部件的作用是什么?
  13. librtmp linux下 编译,LibRtmp编译并导入Android Studio
  14. 什么是量子加密(二)
  15. PLC实训 — PLC的27条基本逻辑指令
  16. php 百家姓,最新“百家姓”排名
  17. 在Visio中如何绘制直线
  18. ICX285 ICX205 ICX414 3CCD共用驱动板电路设计
  19. 万达电商为何刻意回避阿里与马云
  20. 前端学习笔记 - promise是什么?能解决什么问题?

热门文章

  1. python:实现二分类和多分类的ROC曲线
  2. jpg转换成pdf转换器使用教程
  3. KMP算法 -- 字符串模式匹配算法
  4. 大神教你在 Linux 中查看你的时区
  5. 最新科研之《计算机视觉的展望及其观点》(小朱翻译)
  6. java 操作 word 表格和样式,java读取word表格中的表格 java如何读取word中的excel表格数据...
  7. dp LCS poj 1458 Commom Subsequence
  8. 如何让诺基亚Booklet 3G等慢速上网本运行速度更快
  9. php 什么时候使用单例,php单例模式的使用场景,使用方法
  10. Rustdesk安装教程