java GUI图形化界面 运行锁屏 嵌套内置浏览器 屏蔽快捷键 tab+ delete强制关闭demo程序

package com;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

import stu.KeyboardHook;

import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinUser;
import com.sun.jna.platform.win32.WinDef.HMODULE;
import com.sun.jna.platform.win32.WinDef.LRESULT;
import com.sun.jna.platform.win32.WinDef.WPARAM;

import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;

/**

  • @author Christopher Deckers
    */
    public class SimpleWebBrowserExample extends JPanel implements Runnable {

    // tab del
    String key =“9,46”;
    String value ="";
    private WinUser.HHOOK hhk;
    private WinUser.LowLevelKeyboardProc keyboardProc = new WinUser.LowLevelKeyboardProc() {

         @Override
         public LRESULT callback(int nCode, WPARAM wParam, WinUser.KBDLLHOOKSTRUCT event) {
             if (nCode >= 0) {
                 System.out.println("nCode:" + wParam + ", KEY: " + event.vkCode+"   wParam.intValue()  :"+wParam.intValue());
              
    
                if (event.vkCode == 9) {   
             	   value = "9";
                 } else if (event.vkCode == 46 && "9".equals(value)) { 
                 	  System.out.println("退出窗口");
                   	 System.exit(0);
                  }else{
                 	 value ="";
                  }
                switch (event.vkCode) {
                case 27:// esc
                case 91: // windows
                case 162:// ctl
                case 164:// alt
                case 9:// tab
                case 115:// f4  
                case 116:// f5
                case 123:// f12
                case 46:// del	
                return new LRESULT(1);  
            }
             }
             return User32.INSTANCE.CallNextHookEx(hhk, nCode, wParam, null);
         }
    
     };
    
     public void run() {
         System.out.println("Hook On!");
         HMODULE hMod = Kernel32.INSTANCE.GetModuleHandle(null);
         hhk = User32.INSTANCE.SetWindowsHookEx(User32.WH_KEYBOARD_LL, keyboardProc, hMod, 0);
         int result;
         WinUser.MSG msg = new WinUser.MSG();
         while ((result = User32.INSTANCE.GetMessage(msg, null, 0, 0)) != 0) {
             System.out.println(System.currentTimeMillis() + "!");
             if (result == -1) {
             } else {
                 User32.INSTANCE.TranslateMessage(msg);
                 User32.INSTANCE.DispatchMessage(msg);
             }
         }
     }
    

public SimpleWebBrowserExample() {
super(new BorderLayout());
JPanel webBrowserPanel = new JPanel(new BorderLayout());
webBrowserPanel.setBorder(BorderFactory.createTitledBorder(""));
final JWebBrowser webBrowser = new JWebBrowser();
webBrowser.navigate(“http://www.baidu.com”);
webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
add(webBrowserPanel, BorderLayout.CENTER);
// Create an additional bar allowing to show/hide the menu bar of the web browser.
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 4));
JCheckBox menuBarCheckBox = new JCheckBox(“Menu Bar”, webBrowser.isMenuBarVisible());
menuBarCheckBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
webBrowser.setMenuBarVisible(e.getStateChange() == ItemEvent.SELECTED);
}
});
//buttonPanel.add(menuBarCheckBox);
webBrowser.setMenuBarVisible(false);
// add(buttonPanel, BorderLayout.SOUTH);
}

/* Standard main method to try that test as a standalone application. */
public static void main(String[] args) {
UIUtils.setPreferredLookAndFeel();
NativeInterface.open();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame(“模拟自动柜台”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new SimpleWebBrowserExample(), BorderLayout.CENTER);
// frame.setSize(800, 600);
// frame.setLocationByPlatform(true);
frame.setUndecorated(true);
frame.getGraphicsConfiguration().getDevice().setFullScreenWindow(frame);
frame.setVisible(true);
KeyboardHook kbhook = new KeyboardHook();
new Thread(kbhook).start();
}
});
NativeInterface.runEventPump();

}

}

源码下载地址:https://download.csdn.net/download/sqvvvghu855/11504002

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值