java调用exe截图程序实现延迟截图

之前用Apple键盘,在windows系统上没有快速全屏截图工具,无法截取下拉菜单之类的点击其他地方就会消失的图片,

又不想写那么复杂,就使用java写了简单调用exe截图程序来实现延迟截图

 1 import javax.swing.*;
 2 import java.awt.event.ActionEvent;
 3 import java.awt.event.ActionListener;
 4
 5 /**
 6  * Created by ycl on 2017/8/17 2017-8-17 22:33:59.
 7  */
 8 public class CutScreen extends JFrame implements ActionListener {
 9
10
11     JPanel jp;
12     JLabel jlTime;
13     JComboBox jcbTime;
14     JButton jbTime;
15
16     public CutScreen() {
17         jp = new JPanel();
18         this.setContentPane(jp);
19         this.setTitle("延迟截图");
20         this.setVisible(true);
21         jp.setLayout(null);
22         jlTime = new JLabel("Delay Time:");
23         jlTime.setBounds(25, 15, 100, 30);
24         jp.add(jlTime);
25
26         String[] str = new String[]{"1", "2", "3", "5", "10"};
27         jcbTime = new JComboBox(str);
28         jcbTime.setBounds(110, 15, 100, 30);
29         jp.add(jcbTime);
30         jbTime = new JButton("Start");
31         jbTime.addActionListener(this);
32         jbTime.setBounds(220, 15, 70, 30);
33         jp.add(jbTime);
34
35         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
36         this.setBounds(600, 300, 325, 100);
37     }
38
39     @Override
40     public void actionPerformed(ActionEvent e) {
41         if (e.getSource() == jbTime) {
42             String time = jcbTime.getSelectedItem().toString();
43             try {
44                 this.setExtendedState(JFrame.ICONIFIED);  //点击后窗口最小化
45                 Thread.sleep(Integer.parseInt(time) * 1000);
46                 openExe();
47                 System.exit(0);    //启动exe程序后退出主程序
48             } catch (InterruptedException e1) {
49                 e1.printStackTrace();
50             }
51         }
52     }
53
54     //执行exe程序,也是网上copy的
55     public static void openExe() {
56         final Runtime runtime = Runtime.getRuntime();
57         Process process = null;
58
59         try {
60             process = runtime.exec("D:\\Software\\tengxunjt.exe");
61
62         } catch (final Exception e) {
63             System.out.println("Error exec!");
64         }
65     }
66
67     public static void main(String[] args) {
68         new CutScreen();
69     }
70 }

>>>效果图:

时间: 2024-10-12 04:50:47

java调用exe截图程序实现延迟截图的相关文章

Java 调用系统默认程序打开

比如,我要打开一个PPT文件,怎么办?最简单的办法,调用系统默认的PowerPoint打开. 这里用到的是  Java.awt.Desktop类 Desktop 类允许 Java 应用程序启动已在本机桌面上注册的关联应用程序,以处理 URI 或文件. 支持的操作包括: 启动用户默认浏览器来显示指定的 URI: 启动带有可选 mailto URI 的用户默认邮件客户端: 启动已注册的应用程序,以打开.编辑或打印指定的文件. 下面举个栗子: package com.sujian; import ja

java调用exe的几种方法

Runtime rt = Runtime.getRuntime(); try {        java.awt.Desktop.getDesktop().open(new File("E:\\XML2XLS\\circlegrid.exe")); //rt.exec("E:\\XML2XLS\\circlegrid.exe");       //rt.exec(new  String[]{"cmd","/c","E

java 调用可执行文件时,ProcessBuilder异常CreateProcess error=2

java 调用其他应用程序时,可能在windows下没有问题,但是转到linux下,却会报这样那样的错误,比如有设计文件操作会报FileNotFoundException等等(如下代码): 1 ProcessBuilder builder = new ProcessBuilder(); 2 builder.command(ffmpeg -i /data/download_video/20160425/20160425235938929164582_1.flv -y -vcodec libx264

使用java传参调用exe并且获取程序进度和返回结果的一种方法

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在某个项目中需要考虑使用java后台调用由C#编写的切图程序(exe),并且前端能够获取到切图的进度和相关描述信息. 2.解决思路 a.首先改造切图程序为接受参数从Main函数传递. b.编写java后台传参调用exe的函数. c.解决通信问题. 3.具体实现 3.1改写C#窗体程序 C#中的入口程序为Main函数,其中Main函数默认是没有参数的,如果添加参

Java调用摄像头截图

Java调用摄像头截图 最近有个需要通过java调用摄像头,并截图的需求,在网上找了下资料,大部分是用一个叫jmf的库,但是jmf已经几百年没有更新,用起来各种问题.后来又找了个叫fmj的库,说是jmf的替代品,但是资料太少,不知道怎么下手.又在网上找了下搜索找到了一个开源项目webcam-capture,真心不错.基本的示例比较齐全,上手快.webcam-capture项目地址: https://github.com/sarxos/webcam-capture使用webcam-capture写

使用java代码调用exe程序 (包括参数传递)

使用Java代码调用exe 1使用场景 我现在使用eclipse+tomcat的架构建立了web server, 在这个web project中我需要建立一个定时任务,在定时任务中执行本地的一个C#工程生成的exe. 2Java代码 public class MyTask extends TimerTask { public void run() { System.out.println("call at " + (new Date())); // TODO æ­¤å¤?æ·»å? å

java打包exe程序需要注意的几个地方

这两天使用java写了一个小程序.然后想使用exe4j给打包成一个exe的程序.出现了一个启动的异常,这里分享一下使用exe4j打包程序注意的事项,以免其他网友出错能够快速定位.如下: No JVM could be found on your system. Please define EXE4J_JAVA_HOME to point to an installed 32-bit JDK or JRE or download a JRE from www.java.com. 截图如下: 出现这

java 调用系统外部的某个程序

有时候我们java 调用系统外部的某个程序 可能需要调用系统外部的某个程序,此时就可以用Runtime.getRuntime().exec()来调用,他会生成一个新的进程去运行调用的程序. 此方法返回一个java.lang.Process对象,该对象可以得到之前开启的进程的运行结果,还可以操作进程的输入输出流. Process对象有以下几个方法: 1.destroy() 杀死这个子进程 2.exitValue() 得到进程运行结束后的返回状态 3.waitFor() 得到进程运行结束后的返回状态

windows程序开发窗口截图实现一

1.2编写窗口截图 本次选择窗口截图一共3步:鼠标按下.移动.弹起. 知识点:改变鼠标图标.截图函数封装.窗口画图 本节新学习AIP: LoadCursor SetCursor(m_hCursor); SetCapture(); CreateDC CreateCompatibleDC CreateCompatibleBitmap ClientToScreen WindowFromPoint CreateSolidBrush FrameRect -------------.. 视频观看地址: ht