标题基本上只是说明了一切,但重申:
如果某个特定的外部程序启动,我需要我的Java程序自杀(配置w / e)。
我的java程序使用一个侦听鼠标输入的全局钩子,当我远程进入客户端计算机时,我的程序创建的鼠标监听器/ GUI会导致鼠标的各种问题(如果使用的话)我在连接时。为了解决这个问题,我需要我的程序在我们使用的屏幕连接应用程序启动时自动“关闭”。
我已经使用全局钩子来捕获鼠标输入,是否有类似我可以用于系统事件的东西?
答案 0 :(得分:0)
根据您使用的Java版本,您可以使用各种库来定期“扫描”操作系统以获取正在运行的进程列表。
如果出现您不喜欢的内容,只需使用System.exit做出反应即可。
答案 1 :(得分:0)
在你的第一个程序中,只需创建一个新的Thread并让它运行。将此代码放在run方法中:
try {
ServerSocket socket = new ServerSocket(1111); // the paramater is a port and you can choose any port you want
socket.accept();
socket.close();
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
}
这将等待连接,一旦建立连接,它将自行关闭。这是因为等待连接的accept方法会阻塞,直到建立连接为止。这就是你把它放在另一个线程中的原因。 收到连接后,它将解锁,因此代码将继续并退出程序!它必须在另一个朋友,所以它不会阻止你的应用程序!
在第二个应用程序中,在开始时只需建立连接! 要建立连接,请使用以下代码:
try (Socket socket = new Socket("localhost" ,1111);){
socket.close();
} catch (IOException e) {
}
这将连接它,一旦它连接,第一个程序将关闭。现在继续这个程序吧!如果您最不了解插座,请查看此链接。这是非常好的解释: