Jawin es un proyecto muy interesante que permite la integracrión de programas Java con sistemas Windows basados en COM y DLLs.
Se puede utilizar Jawin para interactuar fýcilmente con aplicaciones como Microsoft Office, Microsoft Powerpoint, etc. Tambrión se puede utilizar para acceder al registro de Windows, a las APIs de seguridad, etc.
De hecho, Jawin se puede utilizar para llamar a cualquier método basado en COM o DLLs sin tener que escribir nada de JNI en el código.
Por ejemplo, mostrar una MessageBox seráa algo tan sencillo como :
FuncPtr msgBox = new FuncPtr("USER32.DLL", "MessageBoxW");
msgBox.invoke(0, "Hello From a DLL", "From Jawin", 0, ReturnFlags.FAIL_ON_FALSE);
Otro ejemplo, instanciar PowerPoint y crear una presentacrión simple se reducirýa a :
try
Ole32.CoInitialize();
DispatchPtr app = new DispatchPtr("new:PowerPoint.Application");
app.put("Visible", true);
DispatchPtr preses = app.getObject("Presentations");
DispatchPtr pres = (DispatchPtr) preses.invoke("add", -1);
DispatchPtr slides = pres.getObject("Slides");
DispatchPtr slide = (DispatchPtr) slides.invoke("Add", 1, 2);
DispatchPtr shapes = slide.getObject("Shapes");
DispatchPtr shape = (DispatchPtr) shapes.invoke("Item", 1);
DispatchPtr frame = shape.getObject("TextFrame");
DispatchPtr range = frame.getObject("TextRange");
range.put("Text", "Using Jawin to call COM objects");
Ole32.CoUninitialize();
{}
catch (Exception e)
e.printStackTrace();
{}
Desde luego, parece muy intersante. ¿Qué os parece?