正文
java关闭键盘代码 java输入关闭
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
JAVA 中 按回车键退出的 程序代码怎么写?
import java.io.IOException;
public class TestEnter {
public static void main(String[] args) throws IOException{
while(true){
if(System.in.read() == '\n')
System.exit(0);
}
}
}
java 如何屏蔽键盘热键
给楼主举个例子java关闭键盘代码,要屏蔽ESC键可以这样java关闭键盘代码:
java.awt.KeyboardFocusManager kfm = java.awt.KeyboardFocusManager.getCurrentKeyboardFocusManager();
kfm.addKeyEventDispatcher(new java.awt.KeyEventDispatcher () {
// 如果 KeyboardFocusManager 不应对该 KeyEvent 进行进一步操作java关闭键盘代码,则返回 truejava关闭键盘代码;否则java关闭键盘代码,返回 false
@Override
public boolean dispatchKeyEvent(java.awt.event.KeyEvent e) {
if(e.getKeyCode() == java.awt.event.KeyEvent.VK_ESCAPE) {
return true; // 返回true以达到屏蔽效果
}
return false;
}
});
JAVA如何禁止按键盘某键
据我了解好像做不到你说的这个功能。
你要知道所有的应用程序的运行都是建立在操作系统运行的基础之上的,而java更是如此,因为其class文件是依靠虚拟机运行的,虚拟机又是安装在Windows上的,
Win键,Esc键,Ctrl+Alt+Del,Alt+F4等组合键.其相应的事件都是在操作系统里面就定义了的,且级别相当高。而Windows是个多任务操作系统
如果当前运行的程序是你的Java程序,那么你可以处理以上按键的事件,不作任何处理就可以了,但是操作系统仍然可以感受到这几个按键的按下,在运行完你的程序的按键事件处理函数后,Windows仍然会响应其相应的按键事件,除非在你的事件处理代码中有高级别线程的中断指令,但是这几乎不可能。
如果当前任务不是你的程序,那么你对键盘按下的反应没有任何控制性。
Java的强项是多平台下的分布式应用,要实现你说的这个功能,可以使用C++写一个后台服务程序,当运行这个程序后,所有的按键事件首先被他所截获,如果是以上按键组合,那么你就将这个事件中断掉,否则再给WIndows处理。C对底层的控制能力仅次于汇编
如何用JAVA做禁用键盘,鼠标,任务管理器等任
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.internal.win32.OS;
import org.eclipse.swt.widgets.Shell;
import org.sf.feeling.swt.win32.extension.hook.Hook;
import org.sf.feeling.swt.win32.extension.hook.Keyboard_LLHook;
import org.sf.feeling.swt.win32.extension.hook.Mouse_LLHook;
import org.sf.feeling.swt.win32.extension.hook.data.Keyboard_LLHookData;
import org.sf.feeling.swt.win32.extension.hook.data.Mouse_LLHookData;
import org.sf.feeling.swt.win32.extension.hook.interceptor.InterceptorFlag;
import org.sf.feeling.swt.win32.extension.hook.interceptor.Keyboard_LLHookInterceptor;
import org.sf.feeling.swt.win32.extension.hook.interceptor.Mouse_LLHookInterceptor;
import org.sf.feeling.swt.win32.extension.registry.RegistryKey;
import org.sf.feeling.swt.win32.extension.registry.RegistryValue;
import org.sf.feeling.swt.win32.extension.registry.RootKey;
import org.sf.feeling.swt.win32.extension.registry.ValueType;
/**
* Ticket:屏蔽系统快捷键,供锁屏使用(添加禁用鼠标事件)
*
* @author XXXXX
*/
public class WinEventInterceptor {
private static Shell tagShell;
private static Keyboard_LLHookInterceptor keyboard_LLHookInterceptor;
private static Mouse_LLHookInterceptor mouse_LLHookInterceptor;
static {
keyboard_LLHookInterceptor = new Keyboard_LLHookInterceptor() {
@Override
public InterceptorFlag intercept(Keyboard_LLHookData hookData) {
int vkCode = hookData.vkCode();
boolean isCtrlPressed = OS.GetKeyState(17) 0 ? true : false;
boolean isAltPressed = OS.GetKeyState(18) 0 ? true : false;
// 屏蔽windows键
if (vkCode == 91) {
return InterceptorFlag.FALSE;
}
// 屏蔽ALT+ESC
if (isAltPressed vkCode == 27) {
return InterceptorFlag.FALSE;
}
// 屏蔽CTRL+ESC
if (isCtrlPressed vkCode == 27) {
return InterceptorFlag.FALSE;
}
// 屏蔽ALT+TAB
if (isAltPressed vkCode == 9) {
return InterceptorFlag.FALSE;
}
// 屏蔽ALT+F4
if (isAltPressed vkCode == 115) {
return InterceptorFlag.FALSE;
}
return InterceptorFlag.TRUE;
}
};
mouse_LLHookInterceptor = new Mouse_LLHookInterceptor() {
@Override
public InterceptorFlag intercept(Mouse_LLHookData hookData) {
return InterceptorFlag.FALSE;
}
};
}
/**
* 根据disable为true时,鼠标不可用;false时,鼠标可用
*
* @param disable
*/
public static void setMouseDisable(boolean disable) {
if (disable) {
Mouse_LLHook.addHookInterceptor(mouse_LLHookInterceptor);
if (!Mouse_LLHook.isInstalled())
Mouse_LLHook.installHook();
} else {
if (Mouse_LLHook.isInstalled())
Mouse_LLHook.unInstallHook();
}
}
/**
* 自定义添加禁用哪些鼠标事件
*
* @param disable
* @param mouseEvents
*/
public static void setMouseDisable(boolean disable, final MOUSE_EVENT... mouseEvents) {
if (disable) {
Mouse_LLHook.addHookInterceptor(new Mouse_LLHookInterceptor() {
@Override
public InterceptorFlag intercept(Mouse_LLHookData hookData) {
MOUSE_EVENT event = null;
if (hookData.getWParam() == 512) {
event = MOUSE_EVENT.MOVE;
} else if (hookData.getWParam() == 513 || hookData.getWParam() == 514) {
event = MOUSE_EVENT.LEFT_PRESS;
} else if (hookData.getWParam() == 516 || hookData.getWParam() == 517) {
event = MOUSE_EVENT.RIGHT_PRESS;
} else if (hookData.getWParam() == 519 || hookData.getWParam() == 520) {
event = MOUSE_EVENT.MIDDLE_PRESS;
} else if (hookData.getWParam() == 522 hookData.getMouseData() 0) {
event = MOUSE_EVENT.WHEEL_UP;
} else if (hookData.getWParam() == 522 hookData.getMouseData() 0) {
event = MOUSE_EVENT.WHEEL_DOWN;
}
for (MOUSE_EVENT mouse_event : mouseEvents) {
if (mouse_event == event) {
return InterceptorFlag.FALSE;
}
}
return InterceptorFlag.TRUE;
}
});
if (!Mouse_LLHook.isInstalled())
Mouse_LLHook.installHook();
} else {
if (Mouse_LLHook.isInstalled())
Mouse_LLHook.unInstallHook();
}
}
/**
* 禁用几个快捷键,windows键,ALT+ESC,CTRL+ESC,ALT+TAB,ALT+F4,任务管理器
*
* @param shell
* 程序主窗口
* @param disable
* 是否禁用
*/
public static void setKeyDisable(final Shell shell, boolean disable) {
if (shell == null) {
return;
}
DisposeListener disposeListener = new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
if (Hook.KEYBOARD.isInstalled(shell))
Hook.KEYBOARD.uninstall(shell);
taskmgrDisable(false);
}
};
if (disable) {
if (tagShell == shell) {
return;
}
taskmgrDisable(disable);
Keyboard_LLHook.addHookInterceptor(keyboard_LLHookInterceptor);
if (!Keyboard_LLHook.isInstalled())
Keyboard_LLHook.installHook();
shell.addDisposeListener(disposeListener);
tagShell = shell;
} else {
if (tagShell != shell) {
return;
}
taskmgrDisable(disable);
if (Keyboard_LLHook.isInstalled())
Keyboard_LLHook.unInstallHook();
shell.removeDisposeListener(disposeListener);
tagShell = null;
}
}
/**
* 禁用任务管理器
*
* @param useable
* useable:true为禁用,false为启用
*/
private static void taskmgrDisable(boolean useable) {
RootKey currentUser = RootKey.HKEY_CURRENT_USER;
RegistryKey key = new RegistryKey(currentUser,
"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");
if (!key.exists()) {
key.create();
}
RegistryValue value = new RegistryValue();
value.setType(ValueType.REG_DWORD);
if (useable)
value.setData(1);
else
value.setData(0);
value.setName("DisableTaskmgr");
key.setValue(value);
}
enum MOUSE_EVENT {
MOVE, LEFT_PRESS, RIGHT_PRESS, MIDDLE_PRESS, WHEEL_UP, WHEEL_DOWN
}
}
其中
setKeyDisable(final Shell shell, boolean disable)
这个方法是因为程序的特殊要求,可以不需要shell。
屏蔽任务管理器是用了一个取巧的办法,在注册表中设置字段,让其不可用。屏蔽快捷键+注册表不可用时,程序就实现锁屏无法切换了。
鼠标事件是后添加的。
java关闭键盘代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java输入关闭、java关闭键盘代码的信息别忘了在本站进行查找喔。