C # Взаимодействует с существующими исполняемыми файлами в Windows CE с помощью Compact Framework? - PullRequest
1 голос
/ 18 декабря 2009

Как бы я мог взаимодействовать с существующим исполняемым файлом в Windows CE с помощью Compact Framework?

Полагаю, я упускаю из виду нечто простое.

Вот сценарий:

Я пытаюсь написать небольшое приложение для выполнения некоторых общих функций, таких как создание пользователя с указанным паролем.

В каталоге Windows есть несколько исполняемых файлов, которые я хотел бы использовать. У меня проблемы с "passwd.exe"

Этот исполняемый файл нельзя использовать, просто передав ему аргументы. Он запрашивает ввод.

Пример использования:

input>  passwd.exe MyUser
output> Current Password: [wait for input]
output> New Password: [wait for input]
output> Retype Password: [wait for input]

Итак, я видел несколько похожих применений System.Diagnostics.ProcessStartInfo в немобильной среде, но, похоже, это не вариант Compact Framework.

Заранее спасибо!

1 Ответ

0 голосов
/ 18 декабря 2009

«взаимодействие» с существующим исполняемым файлом будет в значительной степени зависеть от исполняемого файла.

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

Если это недоступно, то если приложение, с которым вы хотите взаимодействовать, поддерживает параметры командной строки, то это будет проще всего. Вы можете отправить их, используя классы Process и ProcessStartInfo для отправки в аргументах командной строки.

Если это не так, то вам нужно смоделировать фактический пользовательский ввод. Как это будет работать, опять же, зависит от приложения, с которым вы пытаетесь взаимодействовать. Из вашего описания вам, скорее всего, придется симулировать нажатия клавиш с помощью P / Invoking PostKeyboardMessage или keydb_event (SDF имеет реализацию SendKeys, которая упрощает это).

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

...