Обнаружить программу, запрашивающую пин-код, и передать правильный код

Я работаю над службой Windows, для которой требуется определенное VPN-подключение.

Моя проблема заключается в том, что решение, предоставленное клиентом (флешка Rainbow iKey usb), требует, чтобы пользователь вводил пин-код каждый раз, когда инициируется VPN-подключение. Это будет происходить по крайней мере каждую ночь, когда есть окно обслуживания.

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

Мне нужно определить, когда появится «Вход с токеном», и передать правильный пин-код — это выполнимо?


person snaits    schedule 13.09.2010    source источник
comment
Этот диалог почти наверняка защищен от взлома, цель продукта — гарантировать, что только человек может ввести пин-код. Пусть это проблема ваших клиентов, они ее быстро решат.   -  person Hans Passant    schedule 13.09.2010


Ответы (4)


Существует инструмент под названием AutoIt, который может помочь. У меня нет опыта работы с Autoit, но с его помощью вы можете автоматизировать такие вещи: дождаться появления определенного окна, ввести текст, нажать кнопки.

person ur.    schedule 06.10.2010
comment
Большое спасибо! AutoIt действительно сделал свое дело. И довольно прост в использовании. Нам потребовалось некоторое время, прежде чем у нас было время протестировать его, но теперь я знаю нескольких человек, которые будут счастливы перестать набирать этот пин-код каждое утро. - person snaits; 10.12.2010

Если вы используете сценарий оболочки для вызова VPN, вы можете использовать SendKeys.

Успех SendKeys во многом будет зависеть от того, как iKey реализует свою подсказку. Удачи.

person Will    schedule 13.09.2010
comment
Спасибо, но VPN настроен через маршрутизатор cisco. Запрос PIN-кода появляется в виде всплывающего окна из отдельного приложения. - person snaits; 13.09.2010

Оказывается, для этого USB-ключа существует SDK. Тем не менее, он не является общедоступным, и только после того, как я потратил несколько дней на электронное письмо провайдеру, они дали мне ссылку на SDK вместе с пробной лицензией.

Единственным недостатком является то, что SDK представляет собой dll C++ 6.0.

person snaits    schedule 06.10.2010

AutoHotKey — это бесплатный инструмент, который может вам помочь. В первую очередь он предназначен для написания сценариев, которые можно привязать к клавишам на клавиатуре (отсюда и название), но его язык сценариев довольно гибкий. Я использовал его для написания сценариев, которые сидят в фоновом режиме, ожидая появления определенного окна, а затем автоматически взаимодействуют с этим окном для меня - это звучит как именно то, что вам нужно (если диалоговое окно не защищено от программного манипуляция, как теоретизировал Ганс).

person Joe White    schedule 06.10.2010