Aplicaciones Flash de Escritorio con Screenweaver: Llamadas a las DLL de Windows con Flash

Continuando con la tématica de uno de los post de ayer otro punto a tener en cuenta con Screenweaver es la posibilidad de llamar a DLLs del sistema desde Flash.

Un ejemplo esclarecedor puede ser el que viene seguidamente. En el vamos a recoger el nombre del usuario de Windows de dos maneras diferentes. Primero con una instrucción del API de Screenweaver y segundo mediante la llamada a la DLL advapi32.dll de Windows.

Lo primero es trivial y no necesita explicación alguna:

// --- Usuario con swSystem.getUserName
swDebug.trace("Usuario con swSystem.getUserName(): " +
        swSystem.getUserName());

El segundo caso tiene algo más de miga:

// --- Usuario con advapi32.dll(GetUserNameA)
function usuario_callback(resultCode, resultString, args)
{
        swDebug.trace("Usuario con advapi32.dll(GetUserNameA): " +
         args.strName);
}

uargs = {ptr_strName: ""};

swInterface.callDllMethod("advapi32.dll", "GetUserNameA",
       uargs, this.usuario_callback);

Ahora debemos de crear el objeto uargs(las propiedades de turno deben ser consultadas en la documentación de la DLL). En este caso solo hace falta que contenga un String llamado ptr_strName.

La llamada a la DLL se realiza con el método de Screenweaver llamado callDllMethod. Los parametros son el nombre de la DLL a llamar, la función de la DLL, el objeto de argumentos que requiera la función que vamos a invocar y el método de callback de Flash una vez termine la llamada a la DLL. Por último es importante que la funcion de callback reciba los parametros indicados en el ejemplo.

Esta funcionalidad es otra más a tener muy en cuenta en el camino de integración de nuestro player favorito con todo tipo de entornos. Ahora podemos tener toda la potencia de las librerias del SO a nuestro servicio o escribir las nuestras propias.

Feliz DLLing 🙂

5 Comentarios

  1. Estoy buscando un ejemplo o codigo mas completo para llamar una dll desde flash…..veo que la informacion presentada es una parte de lo que ya se ha comentado de este tema…me gustaria ponerme al tanto ….y conocer el ejemplo completo..

    gracias

  2. Estimado,
    Como s e utiliza screenweaver para descargar archivos desde un cd rom
    realizado en flash
    Saludos

  3. Muy interesante Carlos, pero no he logrado probar una sencilla DLL, “hola mundo” con flash. Simplemente me lo despliega como “undefined”., tal vez no he logrado entender uargs = {ptr_strName: “”}; si yo convierto var ptr_strName:String = “paco”;, ¿No debería de tirarme el test con el nombre?, partiendo que he probado la DLL con java, el test me dice “hola mundo paco TODO BIEN”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *