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日

悬赏问题

  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”