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 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!
  • ¥15 (标签-python)
  • ¥15 第一个已完成,求第二个做法
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?