我在c中实现了一个简单的linux shell.现在,我正在添加一些功能,我立即想到的是能够使用向上箭头显示最后的命令.
问题1:
但是,我不知道如何做到这一点.你呢?
问题2:
对于如何存储"历史"命令的任何评论也表示赞赏.我想像一个允许访问所有元素的队列这样的东西是个好主意.我错了吗?我是否必须实施它还是已经有一些我应该知道的良好实现?
谢谢.
我编写了下面的代码,但在运行时,当我按下键时,程序不起作用.
我想写一个绘制三角形当用户按下一个程序right_key
和alt_key
.但这根本不起作用.它总是显示黑屏.
#include <GL/glut.h>
void init (void)
{
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0,200.0,0.0,200.0);
}
float red=1,green=1,blue=1;
void processSpecialKeys(int key, int x, int y) {
if(key=='0')
exit(0);
int mod;
if(key== GLUT_KEY_RIGHT) {
mod = glutGetModifiers();
if (mod==GLUT_ACTIVE_ALT) {
red = 1.0; green = 0.0; blue = 0.0;
glColor3f(red,green,blue);
glBegin(GL_TRIANGLES);
glVertex2f(0,0);
glVertex2f(0,100);
glVertex2f(50,100);
glEnd();
}
}
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowPosition(50,20);
glutInitWindowSize(400, 300);
glutCreateWindow("A simple example");
init();
glutDisplayFunc(display); …
Run Code Online (Sandbox Code Playgroud) 我正在开发Lightswitch的项目,我正在尝试在特定屏幕上处理keyup事件
我找不到它,在哪里可以找到那些事件(例如我们的KeyUp KeyDown LostFocus ext.)
如果他们不受支持我该怎么做来处理这样的情况?
我在这个例子之后使用键盘事件:
from kivy.core.window import Window
class PongGame(Widget):
ball = ObjectProperty(None)
player1 = ObjectProperty(None)
player2 = ObjectProperty(None)
def __init__(self, **kwargs):
super(PongGame, self).__init__(**kwargs)
self._keyboard = Window.request_keyboard(self._keyboard_closed, self)
self._keyboard.bind(on_key_down=self._on_keyboard_down)
def _keyboard_closed(self):
self._keyboard.unbind(on_key_down=self._on_keyboard_down)
self._keyboard = None
def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
if keycode[1] == 'w':
self.player1.center_y += 10
elif keycode[1] == 's':
self.player1.center_y -= 10
elif keycode[1] == 'up':
self.player2.center_y += 10
elif keycode[1] == 'down':
self.player2.center_y -= 10
return True
Run Code Online (Sandbox Code Playgroud)
来源: 你如何用kivy检查键盘事件?
但有时当我按下时esc
,即使我没有命令应用程序执行此操作,应用程序仍然存在.是否存在Kivy的内置方法,可以在按下时关闭应用程序esc
?有没有办法禁用它?
shell中出现的日志:
[INFO] [基础]正在申请中......
编辑:我使用屏幕管理器(kivy.uix.screenmanager …
在我的应用程序中,我有一个带有文本标签的表格视图.当用户按下其中一个文本标签时,会显示键盘,但每次重新加载表格时,键盘都会消失.我想添加一个检查(当表重新加载时)以查看键盘是否已启动,如果是,则在重新加载完成后再次使其可见.我的问题是 - 如何检查键盘是否可见?任何帮助将不胜感激.谢谢
我使用此代码在键盘出现时向上移动视图,在我的登录页面中此代码运行良好,但在注册页面中它不起作用。
func textFieldDidBeginEditing(textField: UITextField) {
animateViewMoving(true, moveValue: 100)
}
func textFieldDidEndEditing(textField: UITextField) {
animateViewMoving(false, moveValue: 100)
}
func animateViewMoving (up:Bool, moveValue :CGFloat){
var movementDuration:NSTimeInterval = 0.3
var movement:CGFloat = ( up ? -moveValue : moveValue)
UIView.beginAnimations( "animateView", context: nil)
UIView.setAnimationBeginsFromCurrentState(true)
UIView.setAnimationDuration(movementDuration )
self.view.frame = CGRectOffset(self.view.frame, 0, movement)
UIView.commitAnimations()
}
Run Code Online (Sandbox Code Playgroud)
我有另一个功能可以返回键盘上的键,它也可以在登录页面上运行,但在注册页面上不起作用。两页之间的所有内容都相同。
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
Run Code Online (Sandbox Code Playgroud) 问题是下划线和减号的键值都是 189,键码是 Keys.OemMinus。所以我无法检查按下的键是下划线还是减号。请帮忙。
private void Some_KeyDown(object sender, KeyEventArgs e)
{
if(Pressed key is minus/dash)
{
MessageBox.Show("minus");
}
if(pressed key is underscore)
{
MessageBox.Show("underscore");
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据用户操作将字符发送到输入元素。
我正在尝试使用KeyboardEvent
,dispatchEvent
但无论我做什么,它都不起作用
例如:
let keyEvent = new KeyboardEvent();
keyEvent.key = 'a';
keyEvent.keyCode = 'a'.charCodeAt(0);
keyEvent.which = event['keyCode'];
keyEvent.altKey = false;
keyEvent.ctrlKey = true;
keyEvent.shiftKey = false;
keyEvent.metaKey = false;
keyEvent.bubbles = true;
Run Code Online (Sandbox Code Playgroud)
不确定这是否正确,但我已将其发送如下:
document.querySelector('input').dispatchEvent(keyEvent);
document.activeElement.dispatchEvent(keyEvent);
document.dispatchEvent(keyEvent);
Run Code Online (Sandbox Code Playgroud)
如果我在单击按钮之前首先聚焦输入,则什么都不会发生。有什么建议可能会出问题吗?
我有这个代码来检测键盘何时显示并获取其高度。
@objc func keyboardWasShown (_ notification: Notification) {
let keyboardSize = (notification.userInfo![UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue.size;
print ("KEYBOARD SIZE: \(keyboardSize.height)");
}
Run Code Online (Sandbox Code Playgroud)
起初,当我第一次点击 UITextView 使其成为第一响应者时,控制台显示 271.0 点。
然后我点击视图以关闭键盘。然后我再次点击 UITextView。现在它显示 226.0 点。
第一次和后续试用中的键盘布局没有变化。一开始我总是得到 271,然后下一个总是 226。正确的是 271。
为什么会这样?以及如何修复它?
我以为我发现了一个tampermonkey脚本,但它不起作用.你有什么智慧吗?
https://greasyfork.org/en/scripts/31704-imgur-remove-key-listener
如何禁用网站快捷键键盘热键?我使用Push to talk discord,键干扰了我的浏览体验.
我搜索谷歌搜索"unbind网站热键 - 浏览器"和"脚本禁用删除网站键盘热键"和"禁用imgur热键",但前20个链接没有结果.
// ==UserScript==
// @name Imgur remove key listener
// @namespace xxx
// @description Removes the key shortcuts on imgur
// @include *://imgur.com/*
// @version 1
// @grant none
// @locale en
// ==/UserScript==
$(document).unbind('keydown').unbind('keyup');
Run Code Online (Sandbox Code Playgroud)
当我按下键盘上的波形符/重音键时,上传对话框不应出现在imgur网站上.
javascript keyboard-shortcuts keyboard-events userscripts tampermonkey
keyboard-events ×10
ios ×3
swift ×3
javascript ×2
c ×1
c# ×1
dom-events ×1
events ×1
kivy ×1
linux ×1
opengl ×1
python ×1
shell ×1
tampermonkey ×1
uikeyboard ×1
uitableview ×1
uitextfield ×1
userscripts ×1
winforms ×1
xcode ×1