vb.net 3.5 - написать другой процесс на экранной клавиатуре - PullRequest
0 голосов
/ 03 октября 2018

Я разрабатываю свою собственную экранную клавиатуру, используя 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

Но мне нужно, чтобы эта клавиатура записывалась в любой текстовый редактор и имя файла (не только в файле "без названия - Блокнот")

Как я могу сосредоточиться на последнем процессе, прежде чем сфокусироваться на моей форме?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Проблема решена, глядя на http://www.vbforums.com/showthread.php?459890

Форма экранной клавиатуры vb.net не должна фокусироваться.

0 голосов
/ 03 октября 2018

Сделайте так, чтобы ваша экранная клавиатура не начинала фокусироваться, затем запишите в текущее окно с фокусом.

См. https://www.codeproject.com/Articles/71808/Creating-a-Form-That-Doesn-t-Take-Focus для WinForms или Не брать фокус, но разрешить взаимодействие? для WPF.

...