1. java程序模擬網頁點擊某個按鈕
如果要登錄的話直接post數據就行,具體可以網路 java模擬登錄。
2. java 模擬用戶點擊事件
調用按鈕的 doClick() 方法,下例演示了 button2 模擬點擊 button1 按鈕:
importjava.awt.FlowLayout;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
publicclassAppextendsJFrame{
publicApp(){
this.setSize(300,200);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(newFlowLayout());
JButtonbutton1=newJButton("Button1");
button1.addActionListener(e->JOptionPane.showMessageDialog(App.this,"我是Button1"));
this.add(button1);
JButtonbutton2=newJButton("Button2");
button2.addActionListener(e->button1.doClick());
this.add(button2);
}
publicstaticvoidmain(String[]args){
newApp().setVisible(true);
}
}
3. app無法模擬屏幕點擊
運行java程序。如果程序或者游戲是通過管理員許可權打開的,就無法模擬點擊了。這時胡鎮哪只要用管理員許可權下運行java程序即可生效。模擬點擊是指通過腳本、系統指令完成一些自動化點擊的操作,不需要人為點擊,一般應用在自動化測試,幫助閱讀褲碼屏幕文字旅盯等。
4. 怎麼用java代碼模擬網頁點擊事件
沒這么做過,不過你世局可以陵銀去 研究下java.awt.Robot 類,此類用於為測試自動化、自運行演示程序和其他需要控制滑鼠和鍵盤的應用搜汪讓程序生成本機系統輸入事件.跟人感覺用這個可能可以實現
5. Java寫的模擬滑鼠的游戲輔助,運行時沒法在游戲界面正常點擊
java模擬鍵盤滑鼠等操作, 我也研究過幾天,現在把學習心得分享下.
存在的問題: 現在的問題表面是游戲所在的磁碟路徑, 影響了Java的執行效果 ,其實不同的游戲你又會發現不同的BUG, 比如有的游戲,你會發現Java沒有辦法模擬鍵盤輸入,有的游戲java無法模擬滑鼠動作.有的游戲,Java模擬完全失效. 只有少部分小游戲, Java可以勉強模擬運行.
根本原因是: Java不擅長與系統底層打交道, 畢竟還隔著虛擬機, 就算使用了Java Robot類,進行簡單的鍵盤滑鼠模擬, 還是不夠穩定.
解決辦法 : 當然了還是有解決辦法的,比如在Java中可以使用下面的兩種方法:
方法一: Robot, 比較初級和粗糙, 功能弱小, 只能前台運行.
方法二:JNI/JNA技術, 調用windows API ,或者調用c語言代碼. 可以完成
!!!強烈推薦該方法,可以後台運行, 特別是JNA, 簡化了JNI, 用起來很方便
方法三: JACOB 技術, 目前比較成熟的就是大漠插件, java可以使用JACOB技術,來調用他
有些函數, 沒有辦法完成調用...
其他途徑的解決: C# 調用 大漠插件 , 基本完美解決了;
為什麼選擇C#, 因為和Java語法特別類似, 遷移方便
為什麼選擇大漠插件, 因為很多的函數 都可以直接調用調用即可, 比如找圖,找色,找字,截圖, 模擬鍵鼠操作等.
下面是學習的時候寫過的幾個小案例
我們學習的目的是為了深入了解Java技術.
6. java中控制滑鼠點擊的方法
//利用 java.awt.Robot 類來自動完成一些鍵盤或滑鼠的動作,下面是一個小例子
//程序流程:模擬滑鼠左鍵點擊 開始-->運行-->CMD-->DIR-->CLS-->EXIT
//模擬右鍵點擊 移動到右下角-->右鍵點擊-->調整日期和時間-->退出
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
//Test.java
public class Test {
public static void main(String[] args) throws Exception {
final Robot rb = new Robot();
new Thread(){
public void run(){
rb.delay(2000);
//回車
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
}
}.start();
JOptionPane.showMessageDialog(null,"以下程序自動執行,包括本對話框,請不必進行人為干預.\n如果不能正常執行程序,請先關閉輸入法");
//設置開始菜單的大概位置
int x = 40;
int y = Toolkit.getDefaultToolkit().getScreenSize().height-10;
//滑鼠移動到開始菜單,
rb.mouseMove(x,y);
rb.delay(500);
//單擊三次開始菜單
for(int i=0; i<3; i++)
pressMouse(rb,InputEvent.BUTTON1_MASK,500);
rb.delay(1000);
//運行CMD命令 r cmd enter
int[] ks = {KeyEvent.VK_R,KeyEvent.VK_C,KeyEvent.VK_M,KeyEvent.VK_D,KeyEvent.VK_ENTER,};
pressKeys(rb,ks,500);
rb.mouseMove(400,400);
rb.delay(500);
//運行DIR命令 dir enter
ks = new int[]{KeyEvent.VK_D,KeyEvent.VK_I,KeyEvent.VK_R,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);
//運行CLS命令 cls enter
ks = new int[]{KeyEvent.VK_C,KeyEvent.VK_L,KeyEvent.VK_S,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);
//運行EXIT命令 exit enter
ks = new int[]{KeyEvent.VK_E,KeyEvent.VK_X,KeyEvent.VK_I,KeyEvent.VK_T,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);
//右鍵測試
x=Toolkit.getDefaultToolkit().getScreenSize().width-10;
rb.mouseMove(x, y);
//如果是雙鍵滑鼠,請改用InputEvent.BUTTON2_MASK試試,我沒有這種滑鼠
pressMouse(rb,InputEvent.BUTTON3_MASK,500);
//顯示日期調整對話框 a
pressKeys(rb,new int[]{KeyEvent.VK_A},1000);
rb.delay(2000);
pressKeys(rb,new int[]{KeyEvent.VK_ESCAPE},0);
rb.delay(1000);
new Thread(){
public void run(){
rb.delay(1000);
//回車
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
}
}.start();
JOptionPane.showMessageDialog(null,"演示完畢!");
}
//滑鼠單擊,要雙擊就連續調用
private static void pressMouse(Robot r,int m,int delay){
r.mousePress(m);
r.delay(10);
r.mouseRelease(m);
r.delay(delay);
}
//鍵盤輸入
private static void pressKeys(Robot r,int[] ks,int delay){
for(int i=0; i<ks.length; i++){
r.keyPress(ks[i]);
r.delay(10);
r.keyRelease(ks[i]);
r.delay(delay);
}
}
}
7. 如何用JAVA程序模擬按鍵
java.awt.Robot
//模擬Ctrl+Alt+Z的按下和抬起
publicvoidkeyBoardDemo()
{
神好robot.keyPress(KeyEvent.VK_CONTROL);
型瞎派robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_CONTROL);
卜賀robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_Z);
}
8. Java模擬按鍵精靈
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
/**
* 支持腳本文件的按鍵控製程序
*/
public class KeySprite{
public static void main(String[] args){
String filename = "test.t";
try{
//讀取配置文件
Vector v = readFile(filename);
//執行文件
parseVector(v);
}catch(IOException e){
System.out.println("配置文件錯誤");
}catch(Exception e){
System.out.println("其他錯誤");
}
}
/**
* 讀取文件到Vector中
* @param filepath 文件路徑
*/
public static Vector readFile(String filepath) throws IOException{
Vector v = new Vector();
//文件緩沖輸入流
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(filepath)));
//讀取數據
String s = br.readLine();
while(s != null){
//添加到v
v.add(s);
//讀取下一行
s = br.readLine();
}
//關閉輸入流
br.close();
//返回數據
return v;
}
/**
* 解析讀到的Vector,並執行對應的操作
* @param v Vector對象
*/
public static void parseVector(Vector v){
int size = v.size();
try{
//創建Robot對象
Robot r = new Robot();
for(int i = 0;i < size;i++){
String s = (String)v.get(i);
//分解
String[] data = s.split(" ");
//解析執行
if(data[0].equals("移動")){
//獲得坐標
int x = Integer.parseInt(data[1]);
int y = Integer.parseInt(data[2]);
//移動
r.mouseMove(x,y);
}else if(data[0].equals("按鍵")){
//獲得按鍵種類
char c = data[1].toLowerCase().charAt(0);
//按鍵
r.keyPress(c);
//釋放
r.keyRelease(c);
}else if(data[0].equals("暫停")){
//獲得暫停時間
int time = Integer.parseInt(data[1]);
//暫冊梁停
Thread.sleep(time);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
腳本文件test.t
暫停 1000
移動 200 300
暫停 1000
移動 210 300
暫停 1000
移動 220 300
暫停 1000
移動 230 300
暫停 1000
移動 240 300
暫停 1000
移動 250 300
暫停 1000
移動 260 300
暫停 1000
移動 270 300
暫停 1000
移動 280 300
暫州簡運咐段停 1000
移動 290 300
暫停 1000
移動 300 300
暫停 1000
移動 310 300
9. 用Java 或者VB 知道一個網頁按鈕的ID和類之後 怎麼模擬出點擊和選擇的功能
整體思路
模擬滑鼠點擊
獲取坐州肢標
OK請推薦
import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.*;
public
class
TestFrame
extends
JFrame
{
private
JButton
btn1
=
new
JButton("Button
1");
private
JButton
btn2
=
new
JButton("Button
2");
private
Robot
robot;
public
TestFrame()
{
setLayout(new
GridLayout(0,
1));
add(btn1);
add(btn2);
btn1.addMouseListener(new
MouseAdapter()
{
public
void
mouseClicked(MouseEvent
event)
{
if
(event.getButton()
==
MouseEvent.BUTTON1)
System.out.println(btn1.getText()
+
"滑鼠左鍵冊陪世點擊");
if
(event.getButton()
==
MouseEvent.BUTTON3)
System.out.println(btn1.getText()
+
"滑鼠右鍵點擊");
}
});
btn2.addMouseListener(new
MouseAdapter()
{
public
void
mouseClicked(MouseEvent
event)
{
if
(event.getButton()
==
MouseEvent.BUTTON1)
System.out.println(btn2.getText()
+
"滑鼠左鍵點擊");
if
(event.getButton()
==
MouseEvent.BUTTON3)
System.out.println(btn2.getText()
+
"滑鼠右鍵點擊");
}
});
addMouseMotionListener(new
MouseMotionAdapter()
{
public
void
mouseMoved(MouseEvent
event)
{
}
});
}
public
void
simulationClick()
throws
AWTException
{
//模亂賣擬滑鼠點擊代碼
Point
p1
=
btn1.getLocation();
Point
p2
=
btn2.getLocation();
System.out.println(p1.x
+
","
+
p1.y);
System.out.println(p2.x
+
","
+
p2.y);
Point
p
=
MouseInfo.getPointerInfo().getLocation();
int
x
=
p.x;
int
y
=
p.y;
robot
=
new
Robot();
System.out.println(x
+
","
+
y);
robot.mouseMove(p1.x
+
10,
p2.y
+
10);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.mouseMove(x,
y);
}
public
static
void
main(String[]
args)
{
EventQueue.invokeLater(new
Runnable()
{
public
void
run()
{
TestFrame
frame
=
new
TestFrame();
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try
{
frame.simulationClick();
}
catch
(AWTException
e)
{
e.printStackTrace();
}
}
});
}
}
10. java事件模擬什麼意思
java事件模擬是一種人機交互模型。它有三個基本要素:
1、事件源(EventSource):即事件發生的場所,就是指如李各個組件,如按鈕等,點擊按鈕其實就是組件上發生的一個事件。
2、事件(Event):事件封裝了組件上發生的事情,比如舉山按鈕單擊、按鈕松開等等。
3、事件監聽器(正橡中EventListener):負責監聽事件源上發生的特定類型的事件,當事件到來時還必須負責處理相應的事件。