Impakto91 Ответов: 1

Альтернатива sendkeys VB.NET


Привет,

Я новенькая. Я разрабатываю приложение с помощью VB.NET это должно быть в состоянии открыть окно и скомпилировать некоторые поля, используя только кнопку клавиатуры...

В первом поле нужно написать код типа "0542645", затем нужно сфокусироваться на другом текстовом поле с помощью кнопки TAB и так далее. Я использую WINDOWS 10.

У вас есть какие-нибудь идеи?

Спасибо.

Что я уже пробовал:

Проблема в том, что классическая функция SendKeys не работает в этой программе, я попробовал тот же код с "блокнотом", и он работает. Есть ли альтернатива? Я пытался также использовать скрипт SendMessageA, но ничего.

sameer549

вы пробовали использовать обе клавиши SendKeys?Send () и SendKeys.Sendwait ()??

Impakto91

Да, но это не работает!

Dave Kreskowiak

Если вы не "открываете окно" в приложении, которое пишете, вы фактически запускаете внешний процесс/приложение. Вы никогда не будете использовать SendKeys внутри своего собственного приложения.

Итак, что такое внешнее приложение? Работает ли SendKeys или нет, зависит от приложения, в которое вы отправляете нажатия клавиш.

Impakto91

Для тестирования я написал этот код:

Private Sub Timer1_Tick (sender As Object, e As EventArgs) обрабатывает Timer1. Tick
Посылайте ключи.Отправить("C")
Посылайте ключи.SendWait("C")
Конец Подводной Лодки

и это работает с блокнотом. Приложение, которое я хотел бы использовать, - это программное обеспечение для управления.

Dave Kreskowiak

Это вовсе не ответ на мой вопрос.

Ralf Meier

В основном SendKeys может работать ... но если это работает так, как вы хотите, зависит от того, что вы посылаете, и если пункт назначения уже имеет фокус ...
Вы должны дать гораздо больше информации ...

Impakto91

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

Ralf Meier

Вы поняли, что я не сижу рядом с вами и не вижу, что вы сделали и как вы это сделали ?
Итак ... еще раз : вы должны дать гораздо больше информации ...

1 Ответов

Рейтинг:
2

RickZeeland

Может быть, вы можете попробовать PostMessage, видеть: VB.NET отправка строк через Postmessage-переполнение стека[^]
Другой вариант-использовать такую утилиту, как [программа AutoHotkey]


Impakto91

Метод postMessage не работает. AutoHotKey я не знаю, как это работает, я пытался импортировать DLL из Visual Studio, но я не знаю, как использовать эту функцию