Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

20/11/11

Envio de datos de Applets a PHP

JAN29

En este tutorial aprenderemos a enviar datos desde Applets Java hacia un servidor con PHP mediante POST y esperar una respuesta para mostrar desde el Applet.

¿Que necesitamos?

  • IDE Netbeans 6.9 o Sup
  • Conocimientos de PHP
  • Para las pruebas un servidor web instalado en el equipo

Proyecto.
1.- Crea un nuevo proyecto en Netbeans (nombre= jpFormulario) sin el main, es un applet asi que no necesita de eso, añade un Formulario JApplet (nombre=interfaz.java) y un archivo de clase (nombre=formulario.java), debes tener algo como esto:

2. A nuestra clase interfaz, debemos añadirle objetos y formar un simple formulario, este formulario tendra 4 campos para el nombre, apellido paterno, materno y el correo electronico, ademas de un boton y un JTextArea donde colocaremos la respuesta del servidor. En la imagen de abajo puedes ver lo que queremos lograr, los campos marcados con punto rojo, son donde debes tener cuidado, debes colocar el mismo nombre que se ve, es importante
3. Ahora debemos crear el codigo de envio de formulario, para esto debemos agregar a la clase formulario.java el siguiente codigo:

CLASE: formulario.java

01 package jpFormulario;
02 import java.io.BufferedReader;
03 import java.io.IOException;
04 import java.io.InputStreamReader;
05 import java.io.OutputStreamWriter;
06 import java.net.URL;
07 import java.net.URLConnection;
08 import java.net.URLEncoder;
09 /**
10  * @web http://jc-mouse.blogspot.com/
11  * @author Mouse
12  */
13 public class formulario {
14 
15         /* FUNCION PARA ENVIAR LOS DATOS AL SERVIDOR */
16     public String enviardatos(String name, String app, String apm, String mail)
17     {
18         try {
19             //se forma la cadena con los datos a enviar
20             String dataString ="name="+name+"&app="+app+"&apm="+apm+"&mail="+mail;
21             URLEncoder.encode(dataString, "UTF-8");
22             // Send data
23             URL url = new URL("http://localhost/japplet/jpFormulario/index.php");
24             URLConnection conn = url.openConnection();
25             conn.setDoOutput(true);
26             OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
27             wr.write(dataString);
28             wr.flush();
29             //se obtiene la respuesta del servidor
30             BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
31             String linea, tmp = "";
32              while (( linea = rd.readLine()) != null)
33                  tmp+=linea;
34             //se da un formato de salida al texto
35             tmp = formato(tmp);
36             wr.close();
37             rd.close();
38 
39             return tmp;
40         } catch (IOException ex) {
41             return "";
42         }
43     }
44 
45     /* funcion que dada una cadena de forma:
46      * texto-texto-texto....
47      * separa con un guion, la separa y devuelve
48      * en lineas
49      */
50     private String formato(String tmp)
51     {
52        int j = 0;
53        String [] r = tmp.split("-");
54        tmp="";
55        while(j<r.length){
56            tmp+=r[j]+"\n";
57            j++;
58        }
59        return tmp;
60     }
61 
62 }

Explicación:

La clase se reduce a una función enviardatos(), que necesita como parametros los datos a enviar (nombre, apellidos y email) y que devuelve como resultado un String, este estring puede ser cualquier cosa que especifiquemos en el codigo PHP, este lo veremos mas adelante.

En la linea 20: formamos lo que sera nuestra cadena de datos muy similar a lo que hacemos en javascript y ajax.

En la linea 23: debemos colocar la ruta absluta del archivo PHP al que queremos conectarnos, recuerda que un applet se ejecuta desde en la PC del cliente y el PHP desde el servidor, esta linea debe tener la forma de:


http://www.mipaginaweb.net/carpeta/micodigo.php

El resto de codigo que le continua es para abrir la conexion, mandar los datos y esperar respuesta.

desde la linea 30 podemos ver como se obtiene la respuesta, esta sera un string al cual ya podemos dar el uso que queramos.

Para este ejemplo recibimos una cadena de tipo "texto-texto-texto...." los datos como se observa estan separados por guiones, entonces utilizando el split() formamos un array, damos formato y mostramos al usuario mediante el JTextArea, esto no tiene nada que ver con el envio de datos y solo se lo hace para tener algo más presentable al usuario, bien podriamos esperar un 1 o 0 como respuesta del servidor y mostrar una venta de aviso.

4. Para terminar el applet debemos implementar esta clase en la clase interfaz.java. Si seguiste las instrucciones de arriba, solamente deberas añadir al JButton el siguiente codigo:


01  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
02         formulario f = new formulario();
03         RESPUESTA.setText(
04                 f.enviardatos(name.getText(), app.getText(), apm.getText(), mail.getText())
05         );
06     }    

Explicación: Creamos una instancia de la clase formulario.java y al objeto jTextArea, asignaremos la funcion enviardatos() con los datos que obtendremos de los campos del formulario, como la respuesta que obtendremos es un String, esta la mostraremos directamente en el JTextArea.

5. Nos falta el codigo de nuestro archivo PHP, este es:

PHP: index.php

01 <?php
02  //comprobamos que los datos POST existen y fueron recibidos correctamente
03  if( isset($_POST['name']) and isset($_POST['app'])  
04        and isset($_POST['apm'])  and isset($_POST['mail'])  )
05  {
06    //se colocan los datos en  variables
07    $name = $_POST['name'];
08    $app = $_POST['app'];
09    $apm = $_POST['apm'];
10    $mail = $_POST['mail'];
11    //con los datos que nos pasa el applet ya pdemos proseguir con el registro en la BD
12    // [ interaccion con la base de datos ]
13    // ....
14    //despues podemos devolver un mensaje al usuario
15    $guion="-";
16    echo 'GRACIAS POR REGISTRARTE'.$guion;
17    echo 'Nombre: '.$name.$guion;
18    echo 'Ap. Paterno:'.$app.$guion;
19    echo 'Ap. Materno:'.$apm.$guion;
20    echo 'Mail:'.$mail.$guion;
21    echo $guion;
22    echo 'FIN';
23  }
24  else
25  {
26   echo "Error: No existen datos";
27  }
28 ?> 

Para los que conocen PHP se daran cuenta de que el archivo no hace mas que esperar unos parametros POST, estos paramatros los asiga a unas variables y ya desde aqui podemos tratar los datos como más nos convenga, si no existen datos POST, el archivo devuelve una cadena de error "Error: No existen datos", para el ejemplo de este tutorial, no manejamos base de datos para facilitar las cosas, asi que el archivo se reduce a obtener los datos POST, formar una cadena de respuesta y escribir esta con la sentencia ECHO, a que es igual a ajax :/

IMPORTANTE: este archivo PHP debe estar en un servidor web junto al applet o no, ya es cuestion de gustos. Si ejecutamos la aplicación desde el netbeans, no necesitamos de un archivo html, el appletviewer nos muestra el resultado.
Si lo implementamos desde un servidor web necesitamos crear un archivo HTML que nos implemente el applet.

Puedes ver como queda todo desde este video

El proyecto esta aqui:
Click para descargar

enjoy

continue reading

3/11/11

Eliminar malware Security Sphere 2012

JAN29


Security Sphere 2012 es un malware que se hace pasar por un antivirus con el objeto de engañar a la gente y sacarle plata o peor aun, robarle información personal, este tipo de bichos existen muchos en la red como el que aparecio a finales del año pasado Anti Spyware 2011 con las mismas caracteristicas y los que apareceran el proximo año, si es que no es el fin del mundo :(

Entre las acciones que toma este malware tenemos:
  • Bloquea la ejecución de programas, cualquiera de ellos (antivirus, administrador de tareas, etc)
  • Impide la ejecución de script *.VBS, *.BAT, etc
  • Se mete en el registro para ejecutarse cada reinicio de windows
  • Coloca una imagen de color azul como fondo de pantalla, esto solo para alarmar más al usuario :)
  • Cada cierto tiempo muestra una ventanita invitando a comprar el supuesto antivirus
Pero este malware esta mal hecho, esta mal hecho porque no oculta los archivos del sistema, no deshabilita el modo seguro y se mete en los archivos temporales lo que hace facil su hubicación y destrucción.

ELIMINACIÓN DEL MALWARE

1. Reincia tu PC y presiona F8 para ingresar a modo seguro, espera unos minutos a que windows inicie.

2. Con tu PC en modo seguro el malware no se ejecuta, asi que podemos utilizar cualquier programa *.exe incluso script.

3. Si tienes tus archivos ocultos, ve al menu HERRAMIENTAS -> OPCIONES DE CARPETA -> PESTAÑA VER y busca la opcion "Mostrar todos los archivos y carpetas ocultos", dale clic en aceptar

4. Este bicho busca nido en la unidad C:\ de windows, en la carpeta PROGRAMDATA, esto solo para sistemas Windows Vista y Windows Seven. se camufla creando una carpeta con números y letras, ordena las carpetas por "fecha de modificación" y sera la ultima que se creo como se puede ver en la imagen, pero OJO, no sera la misma que la imagen, estos malwares se crean utilizando nombres alfanumericos al azar asi que tu tendras otra carpeta con diferente nombre.
Como se ve en la imagen, reconocemos el malware por su icono que es el mismo que nos muestra en la molestosa ventana de propaganda.

5. Ahora procederemos a su eliminacion, como se ve en la imagen, lo que yo hago es RENOMBRAR el archivo original eB32111DnDb32111.exe por otro, por ejemplo: eB32111DnDb32111.exe_ESTO_ES_UN_MALWARE.

¿Porque hago esto?
Pues porque como programador friki :) quiero guardar el malware para investigaciones posteriores, diseccionarlo y estudiarlo ;)

Tú puedes simplemente eliminarlo a no se ser que quieras guardarlo como recuerdo :/

Dependiendo si lo hallas renombrado o eliminado, continuemos...

6. Para terminar debemos limpiar el registro del sistema, para esto utilizaremos el programa CCLEANER, ejecutalo y escoge la opcion REGISTRO y ejecuta la limpieza.
Como vemos en la imagen te mostrara la hubicación de la clave de registro que creo el malware, solo dale a reparar seleccionados -> reparar todas las seleccionadas.

Como dijimos al principio este malware tambien crea su respaldo en los archivos temporales, estos archivos tienen el nombre de t849.tmp, 689.tmp, etc al igual que el malware principal, toman nombres al azar, su tamaño esta entre los 3,9 MB, para eliminarlos a todos, selecciona la opcion de ccleaner -> LIMPIADOR, el que tiene forma de una escoba y elimina todos los archivos temporales de internet.

Eso es todo, reinicia el sistema e ingresa en modo normal y el malware habra desaparecido

continue reading

Post recomendado