elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  JNA y manipulacion de apis de Windows en JAVA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: JNA y manipulacion de apis de Windows en JAVA  (Leído 6,514 veces)
cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
JNA y manipulacion de apis de Windows en JAVA
« en: 24 Enero 2010, 07:31 am »

 JNA: Auuu un proyecto relativamente nuevo que permite usar los metodos(funciones o procedimientos) dentro de una libreria dinamica sin necesidad de realizar ningun programa en c++ ni usar headers... :S

Para hacer esto les dejo estos codigos, para los que les interese valdran oro a los que no solo los guardaran en documentos y los abandonaran.

Uso de printf  que esta dentro de la libreia msvcrt. este codigo lo encontre en internet no recuerdo la pagina pero es la primera liga cuando buscas JNA java.

Código
  1. import com.sun.jna.Library;
  2. import com.sun.jna.Native;
  3. import com.sun.jna.Platform;
  4.  
  5. public class HelloWorld {
  6.  
  7.   public interface CLibrary extends Library {
  8.       CLibrary INSTANCE = (CLibrary)Native.loadLibrary(
  9.          (Platform.isWindows() ? "msvcrt" : "c"),
  10.          CLibrary.class);
  11.  
  12.       void printf(String format, Object... args);
  13.   }
  14.  
  15.   public static void main(String[] args) {
  16.       CLibrary.INSTANCE.printf("Hola mundo!\n")
  17.   }
  18. }
  19.  

Y el segundo codigo yo lo cree (claro basandome en el primero)no tiene gran ciencia si alguna ves has manejado programacion de apis por lo regular en vb 6.0, este codigo utiliza la api de windows de dar click...  ;D ;D

Código
  1. import com.sun.jna.Library;
  2. import com.sun.jna.Native;
  3. import com.sun.jna.Platform;
  4. import javax.swing.*;
  5.  
  6. public class prueba {
  7.  
  8.   public interface CLibrary extends Library {
  9.       CLibrary INSTANCE = (CLibrary)Native.loadLibrary(
  10.          (Platform.isWindows() ? "user32" : "c"),
  11.          CLibrary.class);
  12.          //Firma de los metodos de la libreria
  13.          public void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
  14.   }
  15.  
  16.   public static void main(String[] args) {
  17.   //Llamada al metodo
  18.   CLibrary.INSTANCE.mouse_event(2,0,0,0,0);
  19.  
  20.   }
  21. }
  22.  

Si quieres saber de mas apis recomiendo el programita Api Guide, dentro de este viene una gran coleccion de apis y codigos que de ejemplo en vb 6.0 y .net



NOTA: Antes de poder usar estos codigos tienes que descargar el .jar de JNA. no recuerdo la pagina pero buscando en google en 1 minuto los encuentras "JNA.jar",
este paquete tendras que pegarlo en dentro de la ruta de la maquina virtual en
jdk1.6.0_13\jre\lib\ext y listo!!!! a programar APIS!!! :P



« Última modificación: 30 Junio 2010, 18:31 pm por Debci » En línea






cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
Re: JNA y manipulacion de apis de Windows en JAVA
« Respuesta #1 en: 8 Mayo 2010, 01:22 am »

Hola amigos, quiero ver si alguien me puede ayudar a solucionar una incognita, veran con relacion a lo de arriva tengo esta funcion declarada que es para buscar archivos dentro de una ruta.

Código:
public int SearchTreeForFile(String RootPath , String InputPathName,String OutputPathBuffer);
Citar
RootPath:Ruta  de la busqueda
InputPathName: Nombre del archivo a buscar
OutputPathBuffer: Variable String Buffer que regresara la ruta del archivo

la funcion retorna un valor entero que es 1: se encontro el archivo, 0: no se encontro.

Pero el problema radica en que no se como obtener a OutputPathBuffer ya que mando como parametro una variable String y no me retorna nada dentro de la variable.

Código:
String Salida_Ruta="";
        int Verificacion=CLibrary.INSTANCE.SearchTreeForFile(Ruta,Archivo,Salida_Ruta);
JOptionPane.showMessageDialog(null,"El archivo esta en la Ruta " + Salida_Ruta );

Tengo un ejemplo de como usar la funcion en vb 6.0 pero OutputPathBuffer lo toman como una variable string de buffer pero no se como hacer esto en java!!!!

Ejemplo en vb 6.0
Código:
# On Error GoTo Error_Sub 
#   
#     Dim temp As String, Ret As Long 
#   
#     Me.MousePointer = vbHourglass 
#     'Creamos un bufer para almacenar el resultado osea del path 
#     temp = String(MAX_PATH, 0) 
#   
#     'Retorna 1 si se encontró ( text1 es el path, text2 es el archivo ) 
#     Ret = SearchTreeForFile(Text1, Text2, temp) 
#       
#     ' encontrado 
#     If Ret <> 0 Then 
#         MsgBox "Archivo encontrado en: " + Left$(temp, InStr(1, _ 
#                 temp, Chr$(0)) - 1), vbInformation 
#     ' no encontrado 
#     Else 
#         MsgBox "Archivo no encontrado", vbInformation 
#     End If 
#       
#     Me.MousePointer = 0 


De antemano mil gracias :P




En línea






biribau

Desconectado Desconectado

Mensajes: 181


Ver Perfil
Re: JNA y manipulacion de apis de Windows en JAVA
« Respuesta #2 en: 10 Mayo 2010, 22:13 pm »

Ya lo has resuelto?, has probado con Buffer's?
En línea

cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
Re: JNA y manipulacion de apis de Windows en JAVA
« Respuesta #3 en: 11 Mayo 2010, 23:53 pm »

 ::) no no lo e resulto..... tu sabes como puedo usar buffers en java???
En línea






biribau

Desconectado Desconectado

Mensajes: 181


Ver Perfil
Re: JNA y manipulacion de apis de Windows en JAVA
« Respuesta #4 en: 12 Mayo 2010, 01:54 am »

Yo estoy metido en una cosa que necesito la WinAPI pero todavía no llegué a necesitarla. De lo poco que he leído en la docu de JNA, String sólo mapea para const char *. Trae que para arrays modificables usar la clase Buffer. De hecho creo que en java los String son inmutables.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con las APIS de windows, soy principiante
Ingeniería Inversa
papelito 4 1,233 Último mensaje 12 Enero 2020, 12:13 pm
por xor.pt
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines