我正在编写一个应用程序,我需要在其中模拟textarea.我知道如何处理它的唯一方法是捕获关键事件的keyCode.如何使用keyCode并支持utf-8将其应用于画布?
干杯
我需要将密钥组合^⌘C发送到带有包标识符的后台应用程序com.company.app.然后,键组合应激活该应用程序中的菜单项.
不幸的是,我不知道如何做到这一点.一些研究指出我使用NSEvent和CGEvent API CGEventPostToPSN(),但我无法正常工作,因为我不知道如何设置密钥组合.CGEventPost()似乎不适用于我创建的事件,即使所需的应用程序是活动的.
这是我最终提出的代码,但这不起作用:
CGWindowID windowNumber;
NSEvent *event = [NSEvent keyEventWithType:NSKeyUp
location:NSZeroPoint
modifierFlags:(NSControlKeyMask | NSCommandKeyMask)
timestamp:[[NSProcessInfo processInfo] systemUptime]
windowNumber:windowNumber
context:[NSGraphicsContext currentContext]
characters:@"c"
charactersIgnoringModifiers:@"c"
isARepeat:NO
keyCode:8];
CGEventRef eventRef = [event CGEvent];
Run Code Online (Sandbox Code Playgroud)
我现在该怎么办?为什么没有NSEvent相应的CGEventPost()?是否有更简单的方法来激活该菜单项而不是发布活动?我可以很容易地得到一个实例NSRunningApplication,但是没有合适的API来完成我的任务.
更新: 我搞定了:
- (void) postFakedKeyboardEventForCopyScreenToPasteboardToPSN:(ProcessSerialNumber)psn {
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStatePrivate);
CGEventRef keyDownEvent = CGEventCreateKeyboardEvent(source, (CGKeyCode)8, true);
CGEventSetFlags(keyDownEvent, (kCGEventFlagMaskControl | kCGEventFlagMaskCommand));
CGEventRef keyUpEvent = CGEventCreateKeyboardEvent(source, (CGKeyCode)8, false);
CGEventSetFlags(keyUpEvent, (kCGEventFlagMaskControl | kCGEventFlagMaskCommand));
CFRelease(source);
CGEventPostToPSN(&psn, keyDownEvent);
CFRelease(keyDownEvent);
CGEventPostToPSN(&psn, keyUpEvent);
CFRelease(keyUpEvent); …Run Code Online (Sandbox Code Playgroud) 我想知道我如何触发组成的事件keyCode Ctrl+z和由Ctrl+Shift+z?组成的事件键码?
我试图禁止所有其他字符输入文本输入.
既然要得到$你必须按shift-key和4-key.我不确定你会怎么得到像这样的事情的keyCode?
我正在使用ASP.net C#开发的登录页面出现问题.该表单适用于IE,但不适用于Firefox.这是我的样本:
<%@ Page Language="c#" Inherits="ClubCard.loginClubcard" CodeFile="loginClubcard.aspx.cs" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>
Acceso Clubcard
</title>
<meta http-equiv="Page-Enter" content="blendTrans(Duration=0.25)" />
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0.25)" />
<link rel="stylesheet" type="text/css" href="styles.css">
<style>
#centered
{
LEFT: 50%;
MARGIN-LEFT: -235px;
POSITION: absolute;
TOP: 150px
}
.letras
{
FONT-SIZE: 10pt;
COLOR: white;
FONT-FAMILY: Arial
}
.cajas
{
FONT-SIZE: 10pt;
FONT-FAMILY: Arial
}
.letrasGris A
{
FONT-SIZE: 12px;
COLOR: #8f8f92;
FONT-FAMILY: Arial;
TEXT-DECORATION: none
}
.highlightit IMG
{
FILTER: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
-moz-opacity: …Run Code Online (Sandbox Code Playgroud) 我有一个带有处理程序的表单字段,我想在用户故意接受带有return/enter或者选项卡到下一个字段的值后触发.在这种情况下我不能使用onBlur,因为它当然会在用户或系统模糊字段时触发.我只想要一个密钥.
所以我有这个.我有第enter一个,它很棒.但是keycode==9不会触发处理程序.焦点只是移动到下一个领域.
ng-keyup="($event.keyCode == 13 ||
$event.keyCode == 9)
&& packages.submitNumber('add', packages.addTrackingNumber)"
Run Code Online (Sandbox Code Playgroud)
有没有办法在enterOR 上引发这场火灾tab?
所以我想测试我网站的访问者是否按下了"打印屏幕"按钮.
尽管我一直在寻找,但没有任何信息可以找到.我发现的全部是,ir应该是keyCode == 44.
我试过的所有其他按钮都没有问题.
我的错误在哪里?
这是输入按钮的类似工作代码:
window.addEventListener("keydown", checkKeyPressed, false);
function checkKeyPressed(e) {
if (e.keyCode == "13") {
alert("The 'enter' key is pressed.");
}
}
Run Code Online (Sandbox Code Playgroud) 我知道在使用 JavaScript 或 jQuery 时。我可以在对象上添加一个事件侦听器,以便在按下某个键时调用函数。
但是,如果函数是从 HTML 启动的,如下例所示:
function callMyFunction (importantothervalue) {
//How can I get the keycode?
}Run Code Online (Sandbox Code Playgroud)
<textarea onkeyup="callMyFunction(1);"></textarea>
<textarea onkeyup="callMyFunction(2);"></textarea>
<textarea onkeyup="callMyFunction(3);"></textarea>Run Code Online (Sandbox Code Playgroud)
有没有办法从这个上下文中检索关键代码?或者如果我想获得关键代码,我是否总是需要制作一个事件处理程序?
有什么方法可以让我在生成的函数调用中包含重要的其他值,而无需对id或class属性中的信息进行编码并从那里提取它?
我正在使用msvcrt.getwch以Windows为目标的Python进行交互式提示。
该文件说:
读取按键并以字节字符串形式返回结果字符。什么也没有回应到控制台。如果尚未提供按键,则该呼叫将被阻止,但不会等待按下Enter键。如果按下的键是特殊功能键,则将返回“ \ 000”或“ \ xe0”;下一次调用将返回键码。使用此功能无法读取Control-C按键。
我发现F10使用前者- \x00D,F11使用后者\xe0\x85。
但是,这并未说明键码是什么。这很重要,因为\xe0除了其他键之外,我没有键(à),因此无法测试输入此值的输出。
其他方面
例如,我尝试过两种方式将此键粘贴到提示中。
\x16。这是ASCII中的同步空闲密钥。[1](这是我输入的组合键。)右键单击(在PS中粘贴)-结果仅\xe0被输入。
我不确定Power Shell和Visual C ++是否允许我粘贴转义序列,或者这是对该键的实际处理。
鉴于这msvcrt似乎是Visual C ++的包装,我也查看了该文档。
_getch和_getwch函数从控制台读取单个字符,而不回显该字符。这些功能均不能用于读取CTRL + C。读取功能键或箭头键时,每个功能必须调用两次;第一次调用返回0或0xE0,第二次调用返回实际的密钥代码。
这也没有说出键码是什么。
我在网上看过,但是我只能找到有关虚拟键码的信息,但是这表示F10是\x79,F11是\x7A。由于此函数未返回这些值,因此我知道它没有引用这些键码。
我正在尝试将从/ dev/input/event0读取的键盘事件从定义的值转换为未运行X或终端的嵌入式应用程序中的ASCII等效项.
我认为这应该通过Linux中定义的键盘映射功能来完成,而不仅仅是创建我自己的std :: map <>但我似乎无法找到一个好的起点.到目前为止,我发现的大多数示例都假设我使用的是X窗口或终端.