无论如何,在旧版本的R版本2.9中,我能够使用rterm.exe从批处理运行R程序并创建一个图形窗口,用户可以来回滚动查看图形.我能够通过使用一些R代码来做到这一点:
kbd <- function(key) {
if (key == "q") { "Quit" } else NULL }
getGraphicsEvent(" ", onKeybd = kbd)
Run Code Online (Sandbox Code Playgroud)
这使得图形查看器保持打开状态,直到用户按下"q"键.在较新版本的R中,似乎由于这是从批处理开始的(使用Rterm.exe进行非交互),键值始终为NULL,图形窗口只是闪烁和关闭.我的问题是,如果有任何方法我可以以某种方式说服R系统我正在运行一个准交互式会话并让getGraphicsEvent的行为不立即返回NULL?
这是我的情况:我们正在编写一个必须将Microsoft Kinect坐标转换为键盘和鼠标事件的应用程序.
当我们需要控制鼠标时,一切都按照我们在任何应用程序中的预期进行.当我们需要将键盘事件(如按键或键盘)发送到不处理Windows事件的应用程序(例如游戏)时,就会出现问题.
我们尝试了.net框架的SendKeys类,它只适用于Windows应用程序.当应用程序是像Half-Life或Doom这样的游戏时,我们无法获得相同的效果.所以,这是我的问题:我们如何有效地将键盘事件发送到这些其他应用程序?
我有一个HTML5/Javascript(Sencha)应用程序,我已经在XCode中打包到PhoneGap for iOS中.无论如何,我希望能够听取键盘打开/关闭事件并做相应的事情.有没有办法做到这一点?
我创建了一个脚本来重新映射Windows按钮以右键单击.
如何创建可以下载的可执行AutoHotkey文件,该文件只能自动运行该脚本?
我正在尝试编写一个跨平台的python程序,它将在后台运行,监视所有键盘事件,当它看到一些特定的快捷方式时,它会生成一个或多个自己的键盘事件.例如,将Ctrl- @映射到"my.email@address"可能很方便,因此每次某个程序询问我的电子邮件地址时,我只需要输入Ctrl- @即可.
我知道这些程序已经存在,我正在重新发明轮子......但我的目标只是了解有关低级键盘API的更多信息.此外,这个问题的答案可能对其他程序员有用,例如,如果他们想要启动需要密码的SSH连接,而不使用pexpect.
谢谢你的帮助.
注意:有一个类似的问题,但它仅限于Windows平台,并且不需要python.我正在寻找跨平台的python api.还有其他与键盘事件有关的问题,但显然他们对系统范围的键盘事件不感兴趣,只是特定于应用程序的键盘快捷键.
编辑:我应该在这里增加一个声明:我不是想写一个键盘记录.如果我需要一个键盘记录器,无论如何我都可以从网上下载一个.;-)
我有一个HTML表单.用户可以用英语和波斯语填写表格.但我有一个验证码输入,用户应该用英语填写它.
如果用户的键盘布局是波斯语,则在此字段中键入的内容应更改为英语,因此我需要一些编码,以便在关注此输入文本时更改键盘布局.
可以用javascript改变键盘布局吗?
我正在制作一个小文字游戏,我需要获取用户在键盘上输入的最后一个字符.我想到了两种方法.
第一个是通过监听文档键盘事件并通过键码获取每个char.直到我开始用键盘死键(如Â)编写字符时,它工作得非常好.String.fromCharCode(e.keyCode)将其转换为A,因为keyCode用于A,但事件似乎没有关于事件产生的死键或真实字符的事件.
第二个是保持隐藏的输入总是聚焦(坏)和键盘事件获取输入值的最后一个字符,但这只有在我写得非常慢的情况下才有效.我的代码看起来像这样:
function is_char(e){
return (!e.ctrlKey && !e.altKey && !e.metaKey &&
(e.keyCode >= 65 && e.keyCode <= 90) ||
(e.keyCode >= 97 && e.keyCode <= 122)
);
}
$('#fake_input').on('keyup', function(e){
if (is_char(e)){
$('#result').append(this.value[this.value.length - 1]);
}
}).focus();
Run Code Online (Sandbox Code Playgroud)
这是一个工作示例 - http://jsfiddle.net/YkaBm/1/ - 你应该在输入下面得到相同的单词,但是当你写得快一点时,结果是错误的.
你有什么建议如何获得键盘事件的真实(正确)字符或为什么输入键盘事件是这样的?
更新!
正如我在评论中提到的那样,semir.babajic的回答并不适用于我的案例,但多亏了Semir我发现这个愚蠢的解决方案有效:
function is_char(e){
return (!e.ctrlKey && !e.altKey && !e.metaKey &&
(e.keyCode >= 65 && e.keyCode <= 90) ||
(e.keyCode >= 97 && e.keyCode <= 122)
);
}
var x = 0;
$('#fake_input').on('keyup', function(e){
if (e.keyCode …Run Code Online (Sandbox Code Playgroud) 我已经进入了一些Electron项目,我正在试图弄清楚如何在应用程序处于后台时监听任何按键或跟踪鼠标移动.我正在使用菜单栏插件,因此应用程序仍然在后台运行.
我尝试使用全局快捷方式 API,但它看起来只是用于快捷方式而且您无法注册单个按键.我还查看了API,还没有在应用程序主屏幕外找到键击和鼠标移动的事件.
如果键盘上有播放/暂停/等按钮(音乐控制快捷键),按下它们,iTunes将打开(至少在Mac上).
如果你最近打开了另一个音乐播放器,比如Spotify,它实际上会截取快捷键,iTunes也不会做任何事情.
好吧,我想制作一个带有Java的音乐播放器,我希望有相同的行为.我希望我的应用程序拦截这样的快捷方式,其他程序不应该干涉.
我正在使用JavaFX,虽然我认为这不重要.
我怎样才能做到这一点?
我已经能够检测到用户使用JNativeHook按下的键,但我不知道如何拦截键,以便其他应用程序不会使用它们.
keyboard-events ×10
javascript ×4
autohotkey ×1
c# ×1
cocoa ×1
dom-events ×1
electron ×1
events ×1
executable ×1
ios ×1
java ×1
jquery ×1
keyboard ×1
kinect ×1
mouse ×1
python ×1
r ×1
rterm ×1
sencha-touch ×1
windows ×1