FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
WMI - Parámetros del tipo array
Buenas, estoy menejando la clase Win32_Service de WMI. Esta tiene el método Change que tiene varios parámetros, los cuales hay dos que son un array (no son un simple dato como los otros).
Estos parámetros del tipo array no se como se le deben pasar a los objetos de WMI. Los otros los voy cargando en los métodos correspondientes, con los tipos de datos y sus respectivos nombres de parámetros. ¿Habra que recorrer de alguna forma este parámetro tipo array he ir cargando cada uno de los datos que contiene?. Los valores los voy cargando uno por uno en ISWbemProperty, pero este como es array no se si se maneja de la misma forma o no. He visto el código de los componentes de Neftalí pero no maneja ningun método de los objetos de WMI con parámetros de tipo array Para que se entienda, este párametro es un array porque es el nombre de todos los servicios que dependen del que se está cambiando y que se deben iniciar luego del principal. Saludos
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#2
|
||||
|
||||
Puedes probar a pasarlos como OleVariant.
Previamente debes convertir el array of string (por ejemplo) en un array de variants. Para que me entiendas, este código convierte un array de strings en un array de variants (como OleVariant):
Este paramArr puedes usarlo como parámetro en el método Change (por ejemplo).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Neftalí,
Tu dices que asi como se le pasa cada uno de los parámetros a los objetos de WMI tengo que pasar los dos últimos parámetros de "Change", uno a uno?. Pero no los tomará como si cada valor fuera un parámetro distinto?. A lo emjor pasando el mismo nombre de parámetro y cambiando los valores luego internamente los toma como un array y arma el parámetro. Algo asi sería lo que tu dices?
La primer línea sería siempre la misma y lo único que cambia es cada uno de los valores que le llegan a esa misma propiedad? Perdón si no me queda muy claro, pero como no existe mucha documentación del lado de Delphi me estoy guiando por lo que tiene Microsoft y armando todo yo. Lo único que rescato y que me ha servido como referencia son los componentes que tu has diseñado y que tienes en tu blog. Saludos El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno Última edición por Casimiro Notevi fecha: 15-09-2020 a las 21:19:12. |
#4
|
||||
|
||||
Me he perdido un poco.
¿Puedes poner cómo estás haciendo la llamada al método Change?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Paso el código del método que tengo en mi clase genérico que tengo en mi clase para ejecutar cualquier método de los de WMI.
Más alla de que a este método los parámetro que le llegan son un array, que eso lo manejo bien. Uno de los items de ese array es otro array y es el que no se como se manda a WMI cada uno de esos items. Espero que se entienda. Cualquier cosa me preguntas. Saludos
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#6
|
||||
|
||||
Lo que te comentaba es que en estas líneas:
que es donde asignas el valor al parámetro de entrada, utilices el código que te puse anteriormente. En las propiedades de tipos básicos se pasa el valor. Tenemos un array of variant, y pasamos un elemento de ese array (aParamValueArray[i]). Ese valor lo almacenamos en olePropValue, que es del tipo OleVariant. Al final ese valor será un string, un integer,... En el caso de los parámetros de tipo array, empiezas con un array de variants (en lugar de un tipo simple) y lo tienes que acabar pasando como un OleVariant. En ese punto entra el procedimiento (o trozo de código) que te puse más arriba. Con eso pasas un array de valores a un OleVariant. con eso ya lo tienes (creo). Es algo que estoy implementando también en GLibWMI.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como se pasan los valores en un array de tipo string en c# | uper | .NET | 1 | 13-06-2013 17:35:00 |
Un array loco por paso de parámetros de referencia | ManiacPC | OOP | 2 | 14-10-2011 01:00:28 |
Longitud maxima de un array tipo string!! | cristian_abb | Varios | 5 | 25-07-2006 23:53:39 |
devolver array de tipo tdate | maruenda | Varios | 5 | 03-12-2004 19:34:56 |
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo | morfeo21 | Varios | 5 | 17-08-2004 17:39:51 |
|