在c#中记录击键时,输入特殊字符时显示双重字符
我的应用程序可以记录任何用户按下的应用程序,但是当我将特殊字符(如´)按a>> a>获得á时,我会得到´´a;当我想获得à时,我会得到``a,因此所有特殊字符都会键入两次,然后在后面键入常规字符. 我一直在搜索过,真的找不到任何东西.但是我注意到问题在ToAscii方法中,没有该字符的键入正确. public string GetString(IntPtr lParam, int vCode) { try { bool shift = Keys.Shift == Control.ModifierKeys || Console.CapsLock; string value = ""; KeyboardHookStruct MyKeyboardHookStruct = (KeyboardHookStruct)Marshal.PtrToStructure(
2 2024-04-16
编程技术问答社区
将字符转换为虚拟钥匙代码
我有一串值,我想模拟每个字符的窗口中的键按事件. 我计划发送 a href =" http://msdn.microsoft.com/en-us/library/ms646276(VS.85).aspx" rel =" noreferrer"> wm_char> wm_char ,and wm_keyup 事件到窗口(因为似乎是手动发生的事情是手动发生的事情按下). 这些消息需要根据 解决方案 发送WM_KEYDOWN/UP很麻烦.应用程序本身已经使用修饰符键(Shift,Alt,Ctrl)和键盘布局的状态将WM_KEYDOWN消息转换为WM_CHAR.您都无法控制两个,您会随机地得到错误的角色. 只需发送WM_CHAR消息,将WPARAM设置为字符代码即可.无需担心lparam,很少有应用程序使用它. 其他解决方案 vkkeyscanex 任何人?根据MSDN IT: "将字符转换为相应的虚拟键代码和移位状态." (您还可以使用其他解决方案 看
0 2024-04-15
编程技术问答社区
在.NET中,","(逗号)和"."(点)的KeyCode是什么?
在我的KeyDown EventHandler中,我需要知道什么是KeyCode是","和".". . 我找不到他们,这就是为什么我要问.谢谢! 解决方案 键和字符不是同一回事.键盘布局在它们之间变换,而该转换并不是微不足道的.使用KeyDown时,您可能在做错事.如果您想知道输入哪个字符,则应使用KeyPress,这给出了已经翻译的字符. 例如,Keys.Decimal是numpad上的键,与美国布局上的.相对应,而德语布局上的,. Keys.Oemcomma和OemPeriod可能是,和. belling字母.但是在其他可能不同的布局上. 其他解决方案 Oemcomma和OemPeriod看起来像好候选人. 查看 Keys枚举在MSDN上. 其他解决方案 我做到了: 使用单个文本框创建了一个Winform项目. 添加了键盘事件处理程序. 在其中放一个断点 得到了这个:
2 2024-04-13
编程技术问答社区
C# 如何将虚拟按键代码翻译成char?
我试图将虚拟键代码映射到字符. 我的代码使用ProcessCMDKey收听WM_KEYDOWN,这使我可以访问按下键.例如,当我按单个报价时,我会收到一个222的键,我想将其映射到键Char 39,该键代表...您猜对了...单Quote. 我的开发环境是: - .NET框架2.0 - usercontrol放置在许多地方 您知道问题的答案吗? 解决方案 不是 system .windows.form.keysconverter 类是? KeysConverter kc = new KeysConverter(); string keyChar = kc.ConvertToString(keyData); 其他解决方案 是的,我确实使用了MapVirtualKey方法.但是我期望有关如何使用它的更多详细信息:要使用的DllImport指令,enum是特定于字符的映射等. . 我不喜欢这些答案,您可以在5秒钟内使用Google Google,然后提
0 2024-04-10
编程技术问答社区
"一个命名空间不能直接包含字段或方法等成员"
我试图使用Reflexil将此代码用于Net.Refter.我正在尝试用以下代码替换代码: if(Input.GetKeyDown(KeyCode.Keypad5)) { int i = 0; Character localPlayer = PlayerClient.GetLocalPlayer().controllable.GetComponent(); foreach (UnityEngine.Object obj2 in UnityEngine.Object.FindObjectsOfType(typeof(LootableObject))) { if (obj2 != null) { i++; LootableObject loot = (LootableObject) obj2; Debug.Log("Loot "+i+": "+loot.transform.posit
0 2024-04-10
编程技术问答社区
如何将ASCII字符转换为CGKeyCode?
我需要一个函数,鉴于字符,返回与该字符在当前键盘布局上的位置关联的CGKeyCode.例如,给定" b",如果使用美国QWERTY或kVK_ANSI_N,则应返回kVK_ANSI_B如果使用dvorak. Win32 API具有我需要这个才能将参数传递到 CGEventCreateKeyboardEvent() .我已经尝试使用我已经广泛搜索了这个问题,但找不到一个体面的答案.目前,我正在使用以下代码(在线找到),哪个)作品,但并不是完全优雅(很难解密如何简化),我希望不在生产代码中使用它: #include #include #include CGKeyCode keyCodeForCharWithLayout(const char c, const UCKeyboardLa
2 2024-04-05
编程技术问答社区
如何让文本框中的回车键触发一个函数,而不是第一个/默认按钮。
我正在尝试获取Enter键以触发一个函数时在某个文本框中按下函数,而不是触发第一个或默认按钮. 您可以看到此处发生的事情的示例:/a> 如果按其他键,您将获得一个带有键代码的警报框,但是如果按Enter键,您将不会使用键代码获得警报框,而是在按钮单击事件中获得警报框. 显然,Enter键是触发按钮.有没有办法避免这种情况,然后捕获键盘事件中的Enter键,然后触发另一个函数? 解决方案 尝试以下方法: $('#myText').on("keypress", function(e) { if (e.keyCode == 13) { alert("Enter pressed"); return false; // prevent the button click from happening } }); demo 其他解决方案 使用.on() AS .live() 已弃
4 2024-04-05
编程技术问答社区
在JavaScript MouseEvent中,e.metaKey指的是哪个键?
MouseEvent.metaKey似乎不起作用.在Firefox和Chrome上,即使我在单击时持有 win 键,它也会返回false: click while holding "meta key" mdn states state : MouseEvent.metaKey仅读取属性返回 Boolean 指示是否按下 meta 键( true )是否( false ) 发生事件. 注意:在Macintosh键盘上,这是命令键(⌘).在窗户上 键盘,这是Windows键( ). 浏览器兼容性 mdn索赔MouseEvent.metaKey在firefox和chrome上支持,但它不起作用. 哪个键MouseEvent.metaKey是指? 为什么上述代码不起作用? 解决方案 如果您要问哪个键,则必须在Window
0 2024-04-03
编程技术问答社区
识别特殊钥匙的钥匙码
我正在使用Windows 8笔记本电脑.我的旧笔记本电脑有一个钥匙组合FN+F5,这将使计算机入睡.我的新笔记本电脑的侧面有一个电源按钮,其作用像手机上的电源按钮,它使PC备用/睡眠.但是我不喜欢硬件按钮,因为它们磨损了. 我插入了一个Logitech键盘,该键盘具有带有电源按钮符号的专用键,当您按下它时,它会执行相同的操作. (我没有安装任何软件或驱动程序,只是将其插入)我的目标是使用Autohotkey分配一个键组合以发送相同的密钥代码.有一些Windows功能(我不知道该称呼它们.外壳命令?)应该让PC入睡,但它们总是将其放入冬眠或关闭,而不是我想要的这就是为什么我诉诸这一.有人知道如何拦截键盘或其他内容吗? 解决方案 将其粘贴到文本文件中,并保存为.ahk并运行. #SingleInstance Force #InstallKeybdHook #InstallMouseHook NP:="Untitled - Notepad" IfWinExist, % NP W
0 2024-03-20
编程技术问答社区
键盘事件触发自动完成,只在特定的键盘代码上触发自动完成
我正在使用jQuery自动完成插件,并试图根据用户输入的某些键手动触发自动完成.我正在尝试将自动完成的绑定到即时的输入,以便一旦用户输入某个键来触发"我现在正在输入要搜索的数据",可以在中间开始寻找匹配项,这可能位于中间该领域,不一定在开始. 我将按键事件绑定到输入.当用户输入某个键时,例如" =",我想在数组中显示所有元素.当用户输入字母时,它将自动完成该字符的数组中匹配的选项.当用户击中等于键并看到可用功能时,这或多或少试图模仿Excel中发生的情况,除了" ="键不必是输入中的第一个元素,它应该每次自动完成'' ="被按下,并毫无绑定,每次选择一个选项时. var array1 = ['one','two','three']; $.input1.bind('keypress', function(event) { var keyCode; if (event.keyCode > 0) { keyCode = event.keyCode; } els
0 2024-03-20
编程技术问答社区
如何在Perl中把Linux的按键代码从/dev/input/event*翻译成ASCII?
我正在编写一个读取来自臭名昭著/dev/input/event*的数据的Perl脚本,但我没有找到将内核生成的密钥代码转换为ASCII的方法. 我说的是该表中的Linux密钥代码在这里>而且我似乎找不到可以帮助我翻译它们的东西,而无需将数组进行硬编码.我想念什么吗? 我想跳过阵列部分,因为它似乎不是一个好习惯,所以知道吗? :) 解决方案 这基本上是一个地图问题.您必须进行一个键代码,并查找其ASCII等效物.您认为"数组部分"呢? 我没有在CPAN上看到此模块,但这意味着您有机会成为第一个上传它的人. :) 其他解决方案 不幸的是,我不在Perl中编程,但这是一个简单的示例.但是,它可能会帮助您. /* * Based on keytable.c by Mauro Carvalho Chehab * * This program is free software; you can redistribute it and/or modify
0 2024-03-07
编程技术问答社区
安卓。软键盘上"?123 "键的KeyEvent.KEYCODE是什么?
我想按编程方式按"?123"键.但是我不知道此符号的键代码.而且我也找不到它.任何人都可以知道软键盘上"?123"符号的键代码. 解决方案 这不是实际按键. 这只是用户更改键盘布局以便按符号等的一种方式. 我认为这甚至不能保证每个键盘都有它. Android上有许多自定义键盘,他们可以以任何方式做到这一点. 您应该自己思考,您实际想实现什么?例如,插入"#"?然后,您应该为此模拟键盘. 其他解决方案 如果您想在这一点上进行自定义,我认为您应该从一开始就创建一个输入方法,并使用自己的键盘类和自己的键盘视图. 这样,您可以在键盘上做任何您想做的事情. 如何制作Android自定义键盘?
6 2024-02-18
编程技术问答社区
如何从应用程序调用关机、重启对话框?
我想在我的应用程序长时间按下电源按钮时,请关闭电源,重新启动等.对话框. 我不需要直接重新启动,关闭电源等... 只是想称呼该对话框. 如何称呼它?或如何在应用程序上发送电源按钮密钥? 预先感谢. 解决方案 如果您查看源代码,则会看到它在内部进行处理(phonewindowmanager.java and globalactions.java).通过API没有任何接口.简而言之:无法完成. 如果您有重新启动权限,则可以直接使用PowerManager.reboot()重新启动手机,但是公共应用程序不太可能需要此功能.我不信任重启许可的应用程序. 其他解决方案 由于安全限制 ,无法编程. 类似的问题
4 2024-02-18
编程技术问答社区
区分安卓按键事件中的文本键码和控制键码
有 284 KeyEvent键代码.其中一些代表Unicode字符(例如KEYCODE_A和KEYCODE_1),而另一些则表示控制字符(例如KEYCODE_DEL). 我正在制作处理键盘输入的自定义视图.它从输入连接中获取大部分输入,但有时键盘发送键代码(与硬键盘输入相关联).我也需要处理.我是否需要详尽处理每个控制键代码,然后将其余的文本转换为文本(带有(char) event.getUnicodeChar()),还是内置的方式可以区分文本代码与控制代码? 解决方案 KeyEvent.getUnicodeChar() 如果键不是用于键入Unicode字符的键,则返回0. 因此,很容易区分文本代码与这样的控制代码: if (keyEvent.getUnicodeChar() != 0) { // unicode text char unicodeChar = (char) keyEvent.getUnicodeChar(); } else {
4 2024-02-13
编程技术问答社区
只有在长按时才会发出KEYCODE_POWER。
为什么此键只能在长时间按下派遣.我试图拥有它,以便将电源按钮的普通按在铃声流中当前播放的音频静音.它仅在长按下,正常按下关闭屏幕.我需要它在普通媒体上工作. @Override public boolean dispatchKeyEvent(KeyEvent event) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_POWER: if (ringer == null) return super.dispatchKeyEvent(event); if (!mute) if (ringer.isRinging()) ringer.stopRing(); else if (!ringer.isRinging(
14 2024-02-07
编程技术问答社区
使用unicode进行自定义安卓键盘
我正在为Android应用程序创建不丹键盘.我正在使用Unicode.但是,当我尝试运行说"错误解析键代码"的应用程序时,我会收到错误消息,并且按下字母不会显示它们. 这是键盘XML文件的示例:
14 2024-02-06
编程技术问答社区
模拟在默认的系统相机应用中拍照
im制作Android语音助手应用程序...在背景中运行服务以识别语音命令. 当用户说"自拍"一词时,我想在默认系统摄像机应用中拍照.我已经知道如何使用语音命令,但是问题是我不能让摄像机应用程序拍照... 我尝试了某种方式,但不会帮助 第一我试图模拟Android Camera密钥事件 Intent intent1 = new Intent("android.intent.action.CAMERA_BUTTON"); intent1.putExtra("android.intent.extra.KEY_EVENT", new KeyEvent(0, KeyEvent.KEYCODE_CAMERA)); sendOrderedBroadcast(intent1, null); intent1 = new Intent("android.intent.action.CAMERA_BUTTON"); intent1.putExtra("android.intent.extr
14 2024-02-06
编程技术问答社区
移除所有活跃的类,然后切换类-javascript
我有以下代码,该代码将EventListener添加到HTML TextArea中.它应该可以控制被按下的键代码,并且,如果键代码为==至17(ctrl),则可以使用"您按Ctrl".由于某种原因,当我按CTRL在Textarea中时,它不是记录被按下的键代码的控制台,也不是"您按CTRL".例如,如果我按" a",请使用正确的控制台日志返回" 97".它还可以与所有其他字母一起使用. 这是代码: document.getElementById("msgBox").addEventListener("keypress",function(e){ console.log(e.keyCode); if(e.keyCode == 17){ console.log("You pressed CTRL."); } }); 我在做什么错? 更新:它也无法使用其他特殊钥匙,例如" shift,fx,alt,home等" html fo
8 2024-01-19
编程技术问答社区