【问题标题】:How to execute a string by key (F12)?如何按键执行字符串(F12)?
【发布时间】:2014-01-21 15:26:06
【问题描述】:

我是 C# 的一个新手,我真正想要的是我的 C# 窗体在后台运行,例如按“F12”,输出是屏幕上的一个字符串。

我希望我的问题足够清楚。

提前致谢。

【问题讨论】:

    标签: c# string key output execute


    【解决方案1】:

    从您的 cmets 中,您正在寻找一个全局密钥挂钩,

    这需要一段时间才能写出答案,而且我很难做到,因为我不知道您的应用程序的构成。然而,所需的大部分代码都在这里:http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

    您将希望在您的应用程序中实现它,我会使用它的方式是: 屏幕上有一个运行按钮,当用户点击时,它会将程序最小化到任务栏,然后启动KeyHooks。

    让 Keyhook 监听 F12 键。

    一旦按键被按下,我会使用 SendKeys.Send 将文本发送到焦点窗口:http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send(v=vs.110).aspx

    因此您可以使用表单中的文本框来填充发送键:

    SendKeys.Send(txtTextboxA.Text);
    

    或者你可以让它每次使用 SendKeys 字符发送相同的东西

    SendKeys.Send("I am going to be sent");
    

    Keyhooks 需要一段时间才能理解,但一旦设置它就像一个魅力,我建议你尝试一下,然后如果你遇到困难,请提出一个新问题:)。

    编辑 - 添加更多 KeyHook 参考

    还有一些代码项目可以帮助你更好地学习:

    http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook

    【讨论】:

    • 谢谢菲利普。以为会轻松很多,呵呵。对我来说仍然很难,没关系,我会想出来的,我希望如此,呵呵。以为会容易很多。感谢您的帮助。
    • 感谢菲利普,我找到了它。来了一个自动打字机的教程视频呵呵。
    • @Jordy144 不用担心,如果您有任何问题,请提出新问题/评论让我知道。
    【解决方案2】:

    您需要在表单上为按键创建一个事件,看看这里:http://www.dotnetperls.com/keycode

    一旦您创建了该事件,您将放入其中的代码将如下所示:

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F12)
            {
               //DisplayText, Asuming you have a textbox do something like this:
               txtBox1.Text = "Hello World!";
            }
        }
    

    【讨论】:

    • 谢谢 JB。实际上我正在寻找的是不要将它放入文本框中,而只是在我正在处理的当前屏幕上。例如在记事本中,我的鼠标光标所在的位置,如果您知道我的意思,应该有字符串。
    • @Jordy144 我不太确定你想在这里完成什么,但如果你想在屏幕上写文本,你需要一个文本框、richtextbox 还是标签?
    • 是的,除了我的 C# 表单本身之外,我屏幕上的所有内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多