Java 如何使PrintWriter在登录屏幕或我在windows 10中选择的任何文本框中写入

Java 如何使PrintWriter在登录屏幕或我在windows 10中选择的任何文本框中写入,java,authentication,io,printwriter,writer,Java,Authentication,Io,Printwriter,Writer,我正在编写一个java程序,用于在windows 10的登录页面中打印密码(以便在执行某些操作时自动登录) 我试着用printwriter来做这件事。 我设法在一个文本文件中打印文本 但是我想在windows 10中打印登录页面密码文本框中的文本 有什么想法吗?… 谢谢 import java.io.*; 类Hasan{ 公共静态void main(字符串[]args) 试试{ PrintWriter=PrintWriter(系统输出); writer.write(“我的密码”); } 捕获(

我正在编写一个
java
程序,用于在windows 10的登录页面中打印密码(以便在执行某些操作时自动登录)
我试着用
printwriter
来做这件事。
我设法在一个文本文件中打印文本
但是我想在windows 10中打印登录页面密码文本框中的文本

有什么想法吗?…

谢谢

import java.io.*;
类Hasan{
公共静态void main(字符串[]args)
试试{
PrintWriter=PrintWriter(系统输出);
writer.write(“我的密码”);
} 
捕获(例外e){
系统输出打印ln(e);
} 
} 
} 

当我使用
System.out
时,我只能在控制台屏幕上打印文本,这是行不通的。当桌面解锁且程序运行时,您可以使用例如
java.awt.Robot
来填写内容,但登录屏幕则完全不同。出于安全原因,您将无法获取任何自定义程序来为您进行登录。至少不使用Java,也不使用root访问。

PrintWriter
设计用于在流上打印字节序列。UI小部件,如文本框,不支持流

如果您想在与您相同的安全上下文中定位进程所拥有的文本框,则必须识别拥有该窗口的进程,并使用操作系统原语(,…)输入文本

安全上下文之外的进程是不可访问的,至少需要提升进程

请注意,某些文本框在“密码”模式下工作时可能会拒绝某些类型的消息,即屏蔽输入。这是为了防止应用程序窃取文本框的上下文

一个更明智的解决方案是让用户将焦点设置在他们想要的UI控件上,然后让他们按下键盘热键来触发您的程序。然后,您的程序可以使用use将键盘字符一个接一个地发送,就像用户正在键入一样

这两种解决方案都可以使用本机语言(C,C++)或Pinvoke(C#),对于java,请看一看。

谢谢Kayaman,在将其转换为.exe后,我使用任务调度器使代码在登录页面中自动运行。首先,我使用了
java.awt.Robot
,但它只能在登录页面中移动鼠标指针,并且在我不知道原因的情况下无法让按键打印密码。为此,我尝试使用
PrintWriter