请问在没有按下键盘的情况下,在后台怎么用程序按下回车事件?意思就是程序直接实现了回车事件触发,就像人按下键盘效果一样。

解决方案 »

  1.   

    ??没明白你的意思 如果是不用回车的话 还用回车事件干嘛 直接用onClick不就行了吗
      

  2.   


    现在就是想能不能自动触发事件,例如后台直接控制键盘按下Enter键。
      

  3.   

    你是说后台调用前台的js事件?
    试试这个,我是用的jquery的trigger方法
     response.setContentType("text/html; charset=UTF-8");
     PrintWriter pw=response.getWriter();  pw.print("<script type='text/javascript'>$("document").ready(function(){
                         $("#你想要按回车的元素的id").trigger(你的回车事件的function);
                     });</script>");  pw.flush();
     pw.close();
      

  4.   


    这个只能控制自己的页面吧,别人的页面弹出一个widown或dialog,根本拿不到这个window或dialog,更别说操作这个window或dialog的元素的事件了
      

  5.   

    楼上说的没有错,就是别人的网站提示一个confirm提示框,不知道怎么操作鼠标点确认,或者控制键盘模拟按回车。
    期待高手来解决一下!小弟感激不尽啊!
      

  6.   

    你去看看win32汇编编程,好好了解下windows系统如何工作的就会知道答案了。
      

  7.   

    我的理解是你不是要做网站的外挂,你是想做浏览器的外挂浏览器的外挂肯定也可以实现。但鄙人不知。其它方法,比如,你把他的html过滤一下,把那句alert() 删除掉。
      

  8.   

    这个还是做一个类似 鼠标键盘 按键精灵什么的靠谱。人家弹对话框的话你是怎么先判定弹出了对话框?网上搜的代码楼主可以试验下package download;import java.awt.Robot;
    import java.awt.Toolkit;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;import javax.swing.JOptionPane;public class T11_ShuBiaoJianPan{ 
    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); 

    } }
      

  9.   

    使用java.awt.Robot
    研究下api,研究下键盘按键的keycode 
    貌似不同键盘的 区位 keycode是不一样的。不知道是不是
      

  10.   

    Robot robot = new Robot();
    Thread thread = new Thread();
    robot.keyPress(KeyEvent.VK_ENTER);
    thread.sleep(10);
    robot.keyRelease(KeyEvent.VK_ENTER);