我正在开发一个项目,我可以计算正在按下的键,这样做我正在使用keydown事件。
以下是问题(
)
1.如果应用程序集中,它只捕获按键。它不必在文本框内,文本框仅用于显示其工作情况。如何使它尽可能地最小化并仍然捕获密钥?
(在gif中你可以看到我没有在文本框中输入直到结束)
这是一个gif,向您展示它的工作原理 http://recordit.co/IKubOT0pin
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace testkeydown
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.A)
{
textBox.AppendText("A");
}
}
}
}
答案 0 :(得分:1)
第一部分:因为事件是窗口发出的事件。如果你想捕捉关键事件&#34;全球&#34;你需要另一种方法,比如使用钩子,比如这个答案:
Using global keyboard hook (WH_KEYBOARD_LL) in WPF / C#
第二部分:如果你想以正确的大小写捕获键(在窗口/应用程序中),你可以在TextCompositionManager上连接一个事件,如下所示:
// on load or startup or something, set the handler
TextCompositionManager.AddTextInputHandler(this,
new TextCompositionEventHandler(OnTextComposition));
// then the actual handler
private void OnTextComposition(object sender, TextCompositionEventArgs e)
{
Console.WriteLine(e.Text);
}
e.Text将有实际的&#34;字母&#34;那打字
答案 1 :(得分:0)
你想要的东西是keyLogger应用程序。你必须google key looging或key logger。
有很多网站会教你如何做到这一点。其中之一是:
http://null-byte.wonderhowto.com/how-to/create-simple-hidden-console-keylogger-c-sharp-0132757/