【问题标题】:vb.net 3.5 - Write other process onscreen keyboardvb.net 3.5 - 在屏幕键盘上编写其他进程
【发布时间】:2018-10-03 10:06:19
【问题描述】:

我正在使用 vb.net 开发自己的屏幕键盘

我需要一个低级键盘,它可以在每个进程中写入。 写在一个新的记事本文件上,我使用了这段代码:

    Dim hwnd As IntPtr = FindWindow(Nothing, "Untitled - Notepad")

    If Not hwnd = IntPtr.Zero Then
        SetForegroundWindow(hwnd)
        SetFocus(hwnd)

        keybd_event(VK_RETURN, 0, 0, 0)
        Thread.Sleep(100)
        keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0)

    End If

但我需要这个键盘在各种文本编辑器和文件名中写入(不仅在文件“无标题 - 记事本”中)

如何在关注表单之前先关注最后一个流程?

非常感谢

【问题讨论】:

  • 您所犯的错误是,您一开始就在窃取焦点。您不必确定哪个窗口具有焦点,因为它仍然应该具有焦点,因为您不应该关注焦点。你可能想check this out
  • 好的,谢谢。我解决了这个问题

标签: .net vb.net visual-studio-2012 on-screen-keyboard


【解决方案1】:

让你的屏幕键盘一开始就没有焦点,然后写入当前焦点窗口。

请参阅 https://www.codeproject.com/Articles/71808/Creating-a-Form-That-Doesn-t-Take-Focus 获取 WinForms 或 Not take focus, but allow interaction? 获取 WPF。

【讨论】:

    【解决方案2】:

    http://www.vbforums.com/showthread.php?459890问题就解决了

    vb.net 屏幕键盘窗体不能获得焦点。

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 1970-01-01
      • 2011-06-14
      • 2014-01-27
      • 2013-09-22
      • 1970-01-01
      • 2014-04-26
      • 2012-03-07
      • 1970-01-01
      相关资源
      最近更新 更多