- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在一些 Cyberintelligensia 的帮助下,我现在可以使用 Ctrl+[some displayable key]、Ctrl+Shift+[some displayable key] 和 Ctrl+Shift+Alt+[some displayable key] 的组合来添加重音将字符放入文本框。
问题及其答案是here .
然而,还有一种顽强的组合。我使用 CodeCaster 的建议添加对“Debug.WriteLine(keyData);”的调用查看 tarnation 中按下了什么(哪些键)。这在大多数情况下都很好用;例如,如果我混合“Ctrl+Shift+E”,它会报告:
ControlKey, Control
ShiftKey, Shift, Control
E, Shift, Control
所以它的响应如我所料,并在文本框中输入了“É”。该技术帮助我了解了响应“!”所需的内容。字符(D1)。
但是,有一个组合键是它无法识别的,即“Ctrl+Shift+N”(Ctrl+N有效)。当我按下“Ctrl+Shift+N”时,输出窗口报告:
ControlKey, Control
ShiftKey, Shift, Control
IOW,它缺少预期的“N”,因此没有向文本框添加任何内容(应该添加“Ñ”)。
这是唯一失败的案例;所有其他组合键都有效。
Ctrl+N 确实有效。我在文本框中看到“ñ”并得到:
ControlKey, Control
N, Control
...在输出窗口中。
为什么听不到 Ctrl+Shift+N 和弦中的“N”,我该如何纠正?
这是我现在的代码:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
Debug.WriteLine(keyData);
if (this.ActiveControl != null && this.ActiveControl is TextBox)
{
string replacement = "";
TextBox tb = (TextBox)this.ActiveControl;
bool useHTMLCodes = checkBoxUseHTMLCodes.Checked;
// ...
// N
if (keyData == (Keys.Control | Keys.N))
{
replacement = useHTMLCodes ? "ñ" : "ñ";
}
else if (keyData == (Keys.Control | Keys.Shift | Keys.N))
{
replacement = useHTMLCodes ? "Ñ" : "Ñ"; // not working
}
// ...
if (replacement != "")
{
tb.SelectedText = replacement;
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
如前所述,除捕获 Ctrl+Shift+N 的代码外,一切正常,该代码应发出“Ñ”。
我添加了这个:
tb.ShortcutsEnabled = false;
...来自here但这无济于事。
奇怪的是,用于打开记事本的 Ctrl+Shift+N 键盘快捷键不再适用于我的桌面(我正在使用正在讨论的实用程序),但它确实适用于远程桌面 session (我在其中处理 Sharepoint 的东西)。
远程桌面连接真的拦截了桌面上的击键吗?
即使从远程桌面 session 中注销,“盲点”(Ctrl+Shift+N) 仍保留在此桌面实用程序中。
最佳答案
请试试这个。它会告诉我们是否其他人已经通过 RegisterHotkey()
将 Ctrl-Shift-N 注册为热键组合:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private const int MOD_ALT = 0x0001;
private const int MOD_CONTROL = 0x0002;
private const int MOD_SHIFT = 0x0004;
private const int MOD_WIN = 0x0008;
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc);
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
private void button1_Click(object sender, EventArgs e)
{
bool result = RegisterHotKey(this.Handle, 1001, MOD_CONTROL | MOD_SHIFT, (int)Keys.N);
if (result)
{
UnregisterHotKey(this.Handle, 1001);
}
string msg = result ? " was NOT " : " WAS ";
MessageBox.Show("The Ctrl-Shift-N combination" + msg + "already registered on your system.");
}
}
如果返回时说该组合已在您的系统上注册,则它不会到达您的应用,因为该组合已被注册该组合的应用“使用”。
如果该组合未注册,则可能是另一个应用程序通过低级键盘钩子(Hook) (WH_KEYBOARD_LL) 捕获它并从那里使用它。但是,您无法知道这一点...
关于c# - 如何捕获 Ctrl+Shift+N?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31188543/
我正在尝试实现 Intellij 之类的双类导航。我发现它被称为“快速打开文件”的“序列键绑定(bind)”。 因此,我在 .sublime-keymap --- USER 中添加了这一行 { "
this.x = (Math.random()*canvasWidth); this.y = (Math.random()*canvasHeight); (1) this.shift = {x: th
我目前正在研究编译器,据我了解,在 LR(0) 中,有时会出现“shift/reduce”或“reduce/reduce”冲突,但不可能出现“shift/shift”冲突!为什么我们不能发生“转变/转
我希望使用 AutoHotKey 来修改我的 shift 键的功能。 Steve Losh 的博客条目 here 中描述了该功能。 .具体来说,我希望我的 shift 键执行以下操作: 如果 LShi
在我的Redis数据库中,我有一个以prefix:格式保存的键列表,所以示例数据库看起来像这样:。问题是,当我尝试删除前缀:1时,因为无论出于什么原因,我都需要删除IPSUM,在索引之间留下了一个间隙
在我的Redis DB中,我有一个以prefix:格式保存的键列表,因此示例数据库如下所示:。问题是,当我尝试删除前缀:1时,因为无论出于什么原因,我都需要删除IPSUM,在索引之间留下了一个间隙--
Listview 控件中是否有可以上下移动项目的功能? 最佳答案 我没有太多使用 TListView(我主要使用数据库网格),我把你的问题作为学习一些东西的机会。下面的代码是结果,它比大卫的答案更直观
我有点难以发现这两种操作的不同之处。所以我读到算术移位与逻辑移位基本相同,唯一的区别是它以某种方式保持最高位或有符号位。 所以当我在 101110 上做 LSL #2 时假设这个二进制是一个无符号的,
我正在尝试使用 shift+shift 配置键映射,这可能吗? 我试过: But this maps shift + S and this that maps to unknown 最佳答案 您不
我正在努力在 vim 中绑定(bind) Shift+- 组合。我已经尝试了以下两种选项,但都没有可用的选项,并且谷歌搜索没有带来任何相关信息。 nnoremap - nnoremap - 我正在
我正在使用基于Gallery 的Cover-flow,正如建议的那样here . 是否有可以捕获的事件表明在我的画廊/封面流中进行了一次移位(向左或向右)? 需要明确的是,如果我给画廊一个像样的滑动并
这个问题在这里已经有了答案: Cocoa - NSEvent Respond to the SHIFT key? (5 个答案) 关闭 3 年前。 我正在制作这个应用程序,我想检测是否检测到 shi
我不允许在我的 C 代码中使用浮点变量(出于性能原因)。我想进行整数除法运算,同时我想尽可能地防止除法损失。 我的理解是,如果分子很大,除法运算会产生很好的结果。目前我正在对分子进行左移操作以使其成为
我有一个文本输入,当用户按下 shift(keydown)并绑定(bind)一个监听器以监听 shift 键时,它现在变得透明 即。 $('#foo').keydown(function(){
我有一个包含 shift 命令的 bash 脚本。 它在 bash 中运行正常,但在 zsh 环境中,shift 命令似乎不同。 zsh $ shift shift: shift count must
我正在使用 Fedora 29 中包含的 vim: VIM - Vi IMproved 8.1(2018 年 5 月 18 日,2019 年 2 月 4 日 14:19:12 编译) 我刚刚注意到按
我有一个包含 shift 命令的 bash 脚本。 它在 bash 中运行正常,但在 zsh 环境中,shift 命令似乎不同。 zsh $ shift shift: shift count must
我正在使用 Fedora 29 中包含的 vim: VIM - Vi IMproved 8.1(2018 年 5 月 18 日,2019 年 2 月 4 日 14:19:12 编译) 我刚刚注意到按
我可以使用 UITextViewDelegate 或 NSNotificationCenter 来检测用户何时点击 Keyboard 上的字符键将文本输入到 UITextView. 但我的应用程序需要
当我尝试单击 shift + tab 组合时, Shiftkey 被触发 $("#buttonZZ").on("keydown",function (eve) { if (eve.keyCod
我是一名优秀的程序员,十分优秀!