adv996 2023-03-25 22:47 采纳率: 50%
浏览 15
已结题

servlet操作服务器端剪切板和微信窗口的方法

写了一个servlet ,处理逻辑是:客户端带文本参数请求服务器的servlet,servlet获取信息后,将信息复制到服务器剪切板,打开微信,粘贴发送(该操作均为后端服务器)

整个流程在IDEA中运行(通过tomcat)能够正确动作,但是单独在TOMCAT服务器上运行确无法正确动作,是因为要操作服务器的电脑窗口或者剪切板有什么权限限制么?


```java

import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.awt.Desktop;
import java.awt.Robot;
import java.awt.AWTException;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.awt.datatransfer.Transferable;

@WebServlet(name = "clb", value = "/clb")
public class CLBset extends HttpServlet {
    public void init(){

    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        Desktop deskapp = Desktop.getDesktop();
        if(Desktop.isDesktopSupported()){
            try {
                deskapp.open(new File("D:\\Tencent\\WeChat\\WeChat.exe"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        Robot robot = null;
        //
        //获取剪切板
        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
        //将传入字符串封装下
        Transferable tText = new StringSelection("请注意:@王二麻子 新任务:" +  new Date());
        //将字符串放入剪切板
        clip.setContents(tText, null);
        //
        try {
            robot = new Robot();
            robot.delay(100);//可以控制发送间隔时间
            //点击鼠标左键(目的是让光标放到vx上)
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);

            robot.keyRelease(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_CONTROL);

            robot.delay(100);
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
            robot.delay(100);
        } catch (AWTException e) {
            throw new RuntimeException(e);
        }
    }
}


```

  • 写回答

1条回答 默认 最新

  • IT_service_mesh 2023-03-25 22:50
    关注

    参考GPT和自己的思路:在服务器端进行剪切板和窗口操作是有权限限制的。普通用户权限的服务器可能无法进行这些操作,需要使用管理员权限或者特殊的权限才能完成。此外,在服务器端进行这些操作也不是安全的做法,因为它可以被滥用进行恶意行为。如果您必须这样做,请确保服务器设备的安全性,并且只有授权的人员可以进行操作。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化