Red de conocimiento informático - Material del sitio web - Implementación de cliente automatizado basado en Visual C++

Implementación de cliente automatizado basado en Visual C++

Una descripción general Si podemos utilizar las funciones de los programas existentes al escribir programas para desarrollar software, podemos reducir en gran medida la carga de trabajo de los programadores durante el proceso de desarrollo y lograr el doble de resultado con la mitad de esfuerzo. en muchos proyectos de software necesitamos funciones de procesamiento de textos. Aunque MFC proporciona algunos métodos, la implementación específica requiere mucho tiempo y tiene ciertas dificultades si pudiéramos usar directamente las funciones proporcionadas por OFFICE. Para lograr este objetivo, solo necesita usar la tecnología ActiveX Automation para lograrlo fácilmente. Este artículo habla principalmente sobre el concepto de automatización y utiliza un ejemplo de operación de un documento de Word para ayudar a los lectores a comprender cómo realizar la automatización en la programación VC 2. Automatización. El concepto de automatización en el desarrollo de programas de Windows es una tecnología basada en /D. Permite que una aplicación manipule objetos en otro programa utilizando las funciones ricas proporcionadas por el programa, o que una aplicación proporcione algunos objetos y métodos y propiedades para permitir a otro. programa para utilizar las diversas funciones que proporciona Las aplicaciones que proporcionan objetos y métodos de propiedades de objetos se denominan usos de automatización del lado del servidor de métodos de propiedades de objetos según el principio de si el programa es un beneficiario o un benefactor. El servidor de automatización permite que otros programas le indiquen qué hacer. Las funciones y los datos que expone se denominan métodos (Métodos) y propiedades (Propiedades). Por ejemplo, Word y Excel, miembros del paquete Microsoft Office, son todos servidores de automatización. La automatización se puede dividir en dos categorías según las diferentes ubicaciones del cliente y el servidor de automatización) Si dos aplicaciones diferentes como servidor y cliente están en la misma computadora, se llama automatización local) Si como servidor y cliente se basan dos aplicaciones diferentes en la red y están ubicados en diferentes computadoras. Se denominan automatización remota. Los lectores deben tener en cuenta que debido a la tecnología utilizada, el cliente no puede obtener directamente el objeto del lado del servidor para acceder a él. Utilice las funciones proporcionadas por el objeto. Esta interfaz se llama IDispatch. Es una interfaz especial simplificada que utiliza muchos idiomas diferentes (incluidos idiomas como VB que no pueden usar punteros). En el siguiente proceso de implementación del programa, cuando se trata de automatización, no podemos dejar de mencionar los controles ActiveX. En realidad, son servidores de automatización muy pequeños cargados en el proceso, lo que significa que su velocidad de ejecución es extremadamente rápida. Originalmente se llamaban controles personalizados OLE. y se utilizaron para reemplazar los utilizados en VB y VC. Debido a que los controles ActiveX generalmente se guardan como archivos OCX, también se denominan controles OCX. Debido a que los controles son un servidor de automatización miniaturizado, también deben usarse en el cliente de automatización. En este momento, llame a la aplicación cliente como contenedor. Además de las propiedades y los métodos, los controles ActiveX de la aplicación también contienen eventos. Cuando algo requiere la atención de la aplicación contenedora, el control activará un evento, como el clic de un usuario. Tipos de datos en la automatización Una de las cuestiones más importantes al implementar la programación automatizada es que los programadores deben comprender cómo se transfieren los datos entre el lado del cliente y el servidor de la automatización. ¿Cómo proporcionar un mecanismo unificado y seguro para lograr la transferencia de datos? En la plataforma de desarrollo de VC, proporciona un tipo de datos llamado VARIANT para resolver este problema. Este tipo de datos consta de dos partes: la primera parte es el tipo de datos y la segunda parte es el valor específico de los datos. sobre el tipo de datos VARIANT La clase ColeVariant encapsula el tipo de datos VARIANT, lo que significa que los objetos de la clase ColeVariant se pueden usar dondequiera que se use VARIANT cuando se operan variables de fecha y moneda, VC proporciona dos clases, ColeCurrency y ColeDateTime. al contenido específico: Tres ejemplos de operación de Word El ejemplo de este artículo muestra cómo operar Word para lograr la automatización. Este ejemplo es principalmente para ayudar a explicar cómo implementar la automatización en la programación de Visual C++ para ayudar a los lectores a comprender la implementación de la automatización. proceso.

Existe una comprensión perceptiva, por lo que, en aras de la simplicidad, la función de este programa es seleccionar solo un documento Word * Doc y mostrar su contenido en la vista del programa. Para lograr este propósito, debe iniciar Word y abrirlo. el archivo seleccionado por el usuario. Realice operaciones de selección de todo y del portapapeles y luego pegue los datos en la vista. En la implementación específica de este ejemplo, nuestra aplicación es Word del lado del cliente para la automatización, primero genere. una nueva aplicación de un solo documento y asigne un nombre al proyecto. La clase base denominada kk se selecciona como CEditView ya que muchas operaciones en Office se implementan mediante el lenguaje VBA, para comprender el proceso de trabajo de Word cuando usamos la operación automática de Word. , necesitamos entender VBA. Este conocimiento se puede obtener a través de Los pasos para grabar macros en Word son los siguientes: Iniciar Word Seleccione el submenú Grabar macro en el menú Herramientas y asigne un nombre a una nueva macro. Comience a grabar macros. aparecerá en la ventana. Haga clic en el botón de arriba para detener o pausar la grabación de macro. El siguiente es el código de macro para realizar la operación de abrir un documento de Word, seleccionar todo el contenido del documento y almacenar los datos en el portapapeles@# Sub Macro (. ) @#@# La macro es grabada por LiuTao@# Documentos Abrir nombre de archivo:= Basado en el documento de Visual C ConfirmConversions:=False _ ReadOnly:=False AddToRecentFiles:=False PasswordDocument:= _ PasswordTemplate:= Revert:=False WritePasswordDocument:= _ WritePasswordTemplate:= Formato:=wdOpenFormatAuto Selección WholeStory Selección Copiar Fin Sub Para ver el código de macro, haga clic en Word En el Editor de Visual Basic en el menú Herramientas, puede ver en el código anterior que estas operaciones en Word usan Selección de documentos, dos objetos Se muestra en el lado del servidor automatizado y sus métodos para operar Word, debe usar su tipo. La biblioteca se puede encontrar en el archivo Msword olb. Este archivo generalmente se encuentra en el directorio de instalación de Microsoft Office. Visual C++, puede agregar fácilmente una nueva biblioteca de tipos a la aplicación. Inicie ClassWizard en el programa y seleccione Agregar clase... \De una biblioteca de tipos...\C:\OFFICE\msword olb Seleccione _Aplicación _Selección de documentos en la ventana emergente. Cuadro de diálogo. Esto creará las clases C++ correspondientes para cada objeto de Word utilizado en el programa cliente. Las definiciones e implementaciones de estas clases se dan respectivamente en los archivos msword h y msword cpp, para que el proyecto que generamos admita la automatización. debe agregar la siguiente línea al final del archivo StdAfx h en el proyecto #include afxdisp h Al comienzo de la función InitInstance de la aplicación, agregue la siguiente llamada if (CoInitialize(NULL)!= ) { AfxMessageBox(Soporte de inicialización la biblioteca falló); exit( ); Primero cree un objeto de aplicación de Word a través de la función miembro CreateDispatch() de COleDispatchDriver y luego adjuntelo a la aplicación a través de la función miembro AttachDispatch() de COleDispatchDriver y la interfaz IDispatch. proporcionado por el objeto de la aplicación

Una vez que el programa haya terminado de usar los objetos anteriores, se debe usar la función miembro ReleaseDispatch() de COleDispatchDriver para liberar la conexión entre el objeto y la interfaz. Con los preparativos anteriores, el siguiente es el código específico sobre cómo lograr la operación anterior. objetivos El programa está en Windows Me En el entorno de la plataforma de desarrollo Visual C++, se compila y ejecuta normalmente void CKkView::OnMenuAutoDisplay() { // TODO: Agregue aquí el código del controlador de comando static char BASED_CODE szFilter[]= Word Files( *doc)|* DOC||; CFileDialog fd (true NULL NULL OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT szFilter NULL); CString strFilePath;// Se utiliza para guardar el nombre del archivo abierto if (fd DoModal()==IDOK) strFilePath=fd GetPathName() ;//Obtener el nombre del documento de Word que se abrirá _Application m_App; // Definir el objeto de aplicación Documentos m_Docs proporcionado por Word; // Definir el objeto de documento Selección proporcionado por Word m_Sel // Definir el objeto de selección m_Docs proporcionado por Word ReleaseDispatch(); m_Sel ReleaseDispatch(); m_App m_bAutoRelease=true; if(!m_App CreateDispatch( Aplicación de Word )) { AfxMessageBox( ¡Error al crear el servicio de Word! } // La siguiente es la definición de la variable VARIANT. Colevariant VarFilepath (Strfilepath); Objeto de clase de documentos m_Docs con la interfaz Idispatch m_Docs Open(varFilePath varFalse varFalse varFalse varstrNull varstrNull varFalse varstrNull varstrNull varTrue varTrue varTrue); //Abrir el documento de Word m_Sel AttachDispatch(m_App GetSelection()); Objeto de clase de selección m_Sel con el Interfaz Idispatch m_Sel WholeStory (); //Selecciona todo el contenido del documento m_Sel Copy() ;//Copia los datos al portapapeles esto >GetEditCtrl( ) Pegar ();//Pega los datos en la vista del programa m_Docs ReleaseDispatch( );// Desconectar la asociación m_Sel ReleaseDispatch(); } Este artículo habla principalmente sobre la automatización. La idea de implementar el cliente automatizado utilizando tecnología para operar Word sirve como punto de partida para los lectores. Puede implementar operaciones más complejas del lado del servidor, como Word, Excel y PowerPoint.

Operación lishixinzhi/Article/program/net/201311/13458