J'ai un code VB qui utilise une API COM et qui fait apparaître une boîte de dialogue sur l'écran. Mon programme est une application de console, qui doit être exécutée dans un fichier batch, mais je n'ai trouvé aucun autre moyen de faire autre chose que de trouver un moyen de manipuler automatiquement la boîte de dialogue.Accéder à la poignée d'une boîte de dialogue et manipuler automatiquement l'interface utilisateur
Voici l'appel api (en omettant de code d'installation) qui se traduit par la boîte de dialogue apparaître:
Dim oScript = New ProvideX.Script()
' Setup code here '
oScript.Run(commName)
Cette méthode n'a pas de valeur de retour, et aucun des paramètres supplémentaires qui me permettent de remplir les valeurs I besoin à travers l'API.
J'ai trouvé une méthode pour obtenir le handle de la fenêtre de dialogue, mais je ne suis pas sûr que cela fonctionnera, ou si elle saisira la fenêtre de ligne de commande à la place.
Dim windowHandle = Process.GetCurrentProcess().MainWindowHandle
Est-il possible d'obtenir une liste des fenêtres qui ont été créées par mon processus, je peux identifier celui qui correspond à ma boîte de dialogue?
Aussi, quelqu'un peut-il me diriger dans la bonne direction de comment faire envoyer des clics de souris et des pressions de clavier à une boîte de dialogue non managée, ou est-il une meilleure façon de faire ce dont j'ai besoin.
Ceci est une boîte de dialogue assez simple qui a une invite d'avertissement qui doit être acceptée en cliquant sur un bouton OK. Ensuite, il y a deux zones de texte qui doivent être remplies avec les données que j'ai. Et puis j'ai besoin de cliquer sur un autre bouton.
Je ne demande pas une réponse complète, je cherche juste le brouillon général de la façon de le faire. Edit: Je faisais de la recherche sur PINVOKE.net et je pense que SendInput fonctionnera si je peux obtenir le bon traitement. J'ai parcouru la boîte de dialogue et tout peut être géré par une saisie au clavier.