Question

Dans une application C # WinForms (sur .NET 3.5, probablement 4.0 soonish), comment feriez-vous permettant à l'utilisateur de définir leurs propres macros? Par exemple, un utilisateur peut souhaiter la appuyer sur la touche CTRL + K pour signifier en cliquant sur un certain élément dans le menu, et en entrant du texte dans la boîte de dialogue ouverte par le menu, avant d'appuyer sur « OK » pour fermer la boîte de dialogue.

Idéalement, notre logiciel pourrait fournir une fonctionnalité macro-enregistrement, qui permettrait à un utilisateur de simplement commencer à enregistrer, effectuer les tâches souhaitées, et l'enregistrement d'arrêt d'avoir une macro disponible. Cette une caractéristique qu'ils sont utilisés pour de l'ancienne version du logiciel, qui a été écrit dans FoxPro, un outil qui a des capacités intégrées.

La meilleure option pour nous serait clairement acquérir et utiliser un essayé et testé bibliothèque tierce partie de quelques sortes, mais les idées pour rouler notre propre version sont également appréciés.

Pas de solution correcte

Autres conseils

Si je travaillais sur quelque chose comme ça, je peut-être intégrer un objectif général eventhandler pour enregistrer les événements que vous voulez être enregistrable (peut-être soit en tant que gestionnaire individuel ajouté aux boutons disponibles ou en créant une classe RecordedEventHandler pour étendre EventHandler et puis tous vos sous-classement de la gestion des événements qui - ce ne sont que haut de la tête des idées, donc je n'ai pas examiné ce qui serait la plus viable) et il suffit d'utiliser le bouton « enregistrer une macro » comme un interrupteur pour cela. Il ne sont susceptibles d'être quelques différents types d'événements qui doivent être enregistrés - clics de bouton, entrée du clavier sur tous les champs de texte, des raccourcis clavier et la souris sur tous les champs d'entrée de la souris il est donc pas une tâche extrêmement taxant même si bien sûr travail comment stocker et lier des macros et comment faciliter l'importation et l'exportation si vous étiez disposé à le faire est de temps, mais pas techniquement difficile. Je ne connais pas toutes les bibliothèques à cet effet (bien que je pense il en existe) et de penser à ce que je ne sais pas comment il serait facile d'intégrer quelque chose comme ça parce que les besoins de la plupart des gens en termes de macros sont susceptibles d'être différent.

Si vous avez besoin pour être en mesure d'enregistrer les événements autour de votre application, vous pouvez trouver ManagedWinApi être utile.

J'ai une bonne expérience avec « modèle de conception de commande » pour macro-enregistrement functionaly. Chaque commande feu un peu à l'échelle des événements d'application (statique par exemple) avec des informations abou paramètres etc ... L'enregistreur écouter cet événement et persistent la séquence d'appels de commande.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top