2009-12-18 11 views
1

Comment pourrais-je interagir avec un exécutable existant sur Windows CE en utilisant le Compact Framework?C# Interagir avec les exécutables existants dans Windows CE à l'aide de Compact Framework?

Je me dis que je néglige quelque chose de simple.

Voici le scénario:

Je suis en train d'écrire une petite application pour faire certaines fonctions communes telles que la création d'un utilisateur avec un mot de passe spécifié.

Le répertoire Windows a quelques exécutables que j'aimerais utiliser. Celui avec qui j'ai des problèmes est "passwd.exe"

Cet exécutable ne peut pas être utilisé en lui passant simplement des arguments. Il invite à entrer.

Exemple d'utilisation:

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

J'ai vu quelques utilisations similaires de System.Diagnostics.ProcessStartInfo dans le cadre non-mobile, mais cela ne semble pas être une option Compact Framework.

Merci d'avance!

Répondre

0

"interagir" avec un exécutable existant va grandement dépendre de l'exécutable. Tout d'abord, permettez-moi de dire en passant que je serais très enclin à demander au fabricant de l'appareil s'il avait un moyen de faire tout cela par programmation plutôt que d'essayer de rassembler une entrée utilisateur simulée. Dans ce cas, l'application est susceptible de définir cette information quelque part dans le système, donc si vous pouvez faire la même chose et éviter leur altogetehr application, il va être beaucoup plus propre.

Si ce n'est pas disponible, alors si l'application que vous souhaitez interagir avec les options de ligne de commande de support, alors ce sera le plus facile. Vous pouvez les envoyer en utilisant les classes Process et ProcessStartInfo pour envoyer des arguments de ligne de commande. Si ce n'est pas le cas, vous devez simuler une entrée utilisateur réelle. Comment cela fonctionnerait, encore une fois, dépend de l'application avec laquelle vous essayez d'interagir. D'après votre description, vous devrez vraisemblablement simuler des frappes de clavier en utilisant P/Invoking PostKeyboardMessage ou keydb_event (le SDF a une implémentation de SendKeys qui simplifie cela). Sachez que vous devez vous assurer que la fenêtre cible de l'entrée est mise au point avant d'envoyer ces frappes de touches.