Pregunta

En una aplicación de C # WinForms (en .NET 3.5, 4.0, probablemente soonish), ¿cómo haría usted para permitir al usuario definir sus propias macros? Por ejemplo, un usuario podría desear la pulsación de tecla CTRL + K en el sentido de hacer clic en un determinado elemento en el menú, y entrar en algún texto en el cuadro de diálogo abierto por el menú, antes de pulsar "OK" para cerrar el diálogo.

Lo ideal es que nuestro software podría proporcionar una funcionalidad de macro-grabación, que permitiría a un usuario simplemente empezar a grabar, realizar las tareas deseadas, y la grabación de parada para tener una disposición macro. Esta característica que se utilizan a partir de la versión anterior del software, que fue escrito en FoxPro, una herramienta que tiene tales capacidades incorporadas.

La mejor opción para nosotros sería claramente adquiriendo y utilizando una biblioteca de terceros de probada eficacia de algunas clases, pero también se aprecian ideas para rodar nuestra propia versión.

No hay solución correcta

Otros consejos

Si estuviera trabajando en algo como esto, será quizá integrar un manejador de sucesos de propósito general para registrar los eventos que desea ser grabable (tal vez sea como un controlador individuo añade a los botones disponibles o mediante la creación de una clase RecordedEventHandler extender manejador de sucesos y a continuación, la subclasificación de toda su manejo de ese evento - éstos son apenas más alto de la cabeza las ideas así que no he mirado en lo que sería más viable) y sólo tiene que utilizar el botón "grabar macro" como un interruptor para eso. No sólo es probable que sea unos pocos tipos diferentes de eventos que es necesario registrar - pulsaciones de botón, la entrada de teclado en cualquier campo de texto, atajos de teclado y ratón de entrada en cualquiera de los campos de ratón de entrada así que no es una tarea enormemente gravar a pesar de trabajar curso encontrar la manera de almacenar y macros se unen y cómo facilitar la importación y exportación si estuviera inclinado a hacerlo es mucho tiempo, pero no técnicamente desafiante. No sé de ninguna biblioteca para este propósito (aunque espero que algunos existen) y pensando en ello no estoy seguro de lo fácil que sería integrar algo así porque las necesidades de la mayoría de la gente en términos de macros es probable que sean diferente.

Si usted necesita para ser capaz de registrar los eventos alrededor de su aplicación, puede que encuentre la ManagedWinApi para ser útiles.

Tengo buena experiencia con "patrón de diseño comando" para la macro-grabación functionaly. Cada comando de fuego algunos sucesos de aplicación en todo el (estática, por ejemplo) con informaciones Abou parámetros etc ... La grabadora escuchar a este evento y persisten la secuencia de comandos de llamada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top