23 de Octubre de 2017

programación

Feb
3

.NET Tutorial 37. Creando Thumbnails por código

Categorías: 

En el tutorial de hoy veremos como será posible "redimensionar" una imagen para conseguir determinados efectos.
Estas transformaciones se hacen mediante la GDI del .NET Framework.
En el NameSpace System.Drawing.Image hay un método llamado GetThumbnailImage que genera una vista en miniatura. 

El "problema" del método GetThumbnailImage son sus parámetros: Es necesario usar dos "callbacks", uno para llamar al método GetThumbnailImageAbort y otro callback a un puntero, que debe ser System.IntPtr.Zero

Los métodos mostrados aquí realizarán lo mismo pero sin el engorro de utilizar "callbacks". Los métodos los he encapsulado en una clase llamada Thumbnail. Dicha clase tendrá 4 funciones publicas que realizarán las transformaciones de las imágenes tal y como veremos a continuación.

Ene
25

OllyScan. Ultimate Port scanner for freaks & geeks

Categorías: ,

OllyScan es un escaneador de puertos al "estilo" de Nmap (bueno, lo del "estilo" lo dejaremos correr :)
En esta ocasión he realizado una aplicación en modo consola. El aspecto es este: (parámetro -? o -help)


(Haz click  para agrandar)

Existen una serie de argumentos que comento mínimamente a continuación:

-t: Establece el número de hilos (Threads) que se utilizarán para el escaneo de los puertos. El valor por defecto es 100. Ojo, no "abusar" de este valor, ya que valores muy altos pueden provocar que el sistema se vuelva inestable, se quede sin memoria y que pueda explotar.

-d: Retardo en milisegundos para el inicio de los hilos (ver parámetro -t). En algunos PCs he observado que es necesario incluir un retardo antes de iniciar el hilo. El valor por defecto es 20. Esto quiere decir que antes de iniciar cada hilo de escaneo hay una espera de 20 milisegundos.

Ene
13

Teoría C: Expresiones

Categorías: 

Bueno amigos, os pido perdón por el retraso en esta nueva entrada, pero el tema que tocaba tratar era largo, y no quería olvidar nada. Vamos a ver las expresiones, asi que, ¡al ataque!

 


 

Expresiones

En cualquier programa, necesario procesar los datos de entrada para generar los datos de salida. El elemento básico de C para procesar los datos son las expresiones. Estas expresiones utilizan unos operandos, a saber: constantes, variables, funciones, u otra expresión; y unos operadores, de los tipos: aritméticos, relacionales, lógicos, manejo de bits, asignación, asignación compacta, auto incremento, auto decremento y condiciones. Por último se usan paréntesis para definir en qué orden deben evaluarse las expresiones.

                Valordos = 9,20 * (2,0 +­ Valor)

Operadores aritméticos

Emplean operandos numéricos, y producen como resultado otro valor numérico. Hay dos tipos:

Ene
8

Rotacion de fondos y sprites.

Buenas!
 
Con motivo del desarrollo de mi proximo proyecto, MindMaze, el cual permite al jugador escoger si jugar como diestro o zurdo, estoy diseñando unas funciones que permiten rotar todos los graficos, es decir, fondos tileados, fondos de 16 bits, sprites y 3D Sprites 180º, permitiendo asi cargar un solo set de graficos y rotarlos para jugadores zurdos.
Dado que, de momento, no tengo pensado incluir estas funciones en mi libreria, os las dejo aqui, para que les deis un vistazo.
 
Podeis descargar el codigo fuente desde ESTE ENLACE
Saludos y disfrutarlas!
Ene
7

.NET Tutorial 36. Encender el ordenador de forma remota

Categorías: 

En este tutorial veremos como es posible "encender" nuestro ordenador desde cualquier otro ordenador de la red o incluso encenderlo desde internet.

A este proceso se le conoce como Wake On Lan, y como su propio nombre indica hace que el PC "despierte" cuando desde otro PC de la red o desde internet se envía lo que se conoce como "Paquete mágico". (¿lol?)

El "Paquete mágico" (Magic Packet en inglés) es una secuencia de 102 bytes. Los 6 primeros bytes tienen el valor FF (en hexadecimal) seguidos de 16 veces la dirección MAC (6 bytes). Dicha secuencia de 102 bytes se envía vía UDP

De ahí salen esos 102 bytes: 6 x FF  +  16 x 6 = 102

Recordar que la dirección MAC es una dirección de 6 bytes, del estilo: 12-40-AE-F4-54-15

La dirección MAC la puedes obtener haciendo un ipconfig /all desde la línea de comandos, y es lo que se muestra como "Dirección física".

Para que el Wake on Lan (WoL a partir de ahora) funcione, hay que configurar dos cosas:

Dic
30

.NET Tutorial 35. Enviar SMS desde .NET

Categorías: 

En este tutorial vamos a ver como es posible enviar SMS desde una aplicación de .NET (C#, VB.NET)

Para este tutorial necesitaremos dos cosas:

  • Un teléfono móvil con bluetooth
  • Un ordenador portátil con bluetooth

La gran mayoría de los móviles tienen bluetooth, no asi los portátiles, avisados quedáis  :)

Lo primero que tenemos que hacer es activar el servicio bluetooth tanto en el móvil como en el portátil. Cuando hacemos esto y desde el portátil nos conectamos vía bluetooth con el móvil (nos pedirá una contraseña y tal) en el ordenador se "instalan" una serie de puertos serie:

Lo primero que tenemos que averigurar es que puerto serie es el que usa la conexión bluetooth para enviar los mensajes.

Desde la barra de tareas, pulsamos en 1 y luego con el botón derecho en el icon del bluetooth (2):

Pulsamos en "Abirir configuración":

Dic
21

Teoría C: Las Variables

Categorías: 

Variables II

Como ya mencionamos el principio del anterior tutorial “Tipos y Constantes”, las variables nacen de la necesidad de guardar un dato en memoria, pero saber qué tipo de datos estamos guardando, puesto que para el computador todo son unos y ceros. Insisto en que una variable no es más que un objeto, que representa un trozo de memoria (RAM) donde podemos almacenar un valor. Cuando ponemos (en nuestro caso, en C) el tipo, le estamos diciendo al compilador (emacs, dev-c++, etc.) qué tipo de datos se van a guardar en esa zona de la memoria, y así el compilador evitará que intentemos usarlos de otra forma (por ejemplo, intentar sumar un dato Booleano (verdadero o falso) con un integer (numero de tipo entero)).

En C, las variables se declaran mediante la siguiente fórmula:

Tipo identificador;

Donde el “Tipo” es el tipo de variable que queremos declarar (int, char, _bool, float, double, long, etc.), e “identificador” es el nombre que queremos darle para acceder a los valores que no guardemos en ella (o para cambiarlos).

Dic
18

.NET Tutorial 34. XNA y pixel perfect collision

Categorías: 

En el tutorial 16 vimos como verificar colisiones 2d usando "regiones". Usando XNA vamos a ir un paso más allá. En vez de realizar la comprobación por regiones veremos que es posible verificar las colisiones a nivel de pixeles, lo cual es mucho más preciso y da un poco igual la "forma" de nuestros sprites.

Al igual que en el tutorial 16 tendremos lo siguiente:


(Haz click para agrandar)

Por defecto se evalúa la colisión solo cuando hay intersección entre las dos regiones:

Aunque pulsando la tecla I se evaluará siempre la colisión:


(Haz click para agrandar)

Y aquí el resultado de la colisión a nivel de pixel:

Dic
13

Teoría C: Tipos y Constantes

Categorías: 

Tipos y Constantes

En una maquina digital, toda la información se codifica mediante unos y ceros, independientemente de cómo se nos muestre a nosotros (imágenes, letras, números en decimal, etc.). Por ello, si nosotros no sabemos con qué estamos trabajando, esos 1’s y 0’s podrían significar cualquier cosa. Ello implica que deberemos tratarlos de una manera u otra según lo que sean.

A partir de aquí, nace la necesidad de que el programador, cuando necesita reservar un trozo de memoria para almacenar algo, necesite especificar qué tipo de “algo” es, para que el programa más adelante, sepa cómo interpretar esos 1’s y 0’s. Por ejemplo, si yo guardo el numero 2, eso se almacenaría en binario con un 10, pero si ahora leo eso como una imagen en blanco y negro, tal vez sería un pixel con la tonalidad correspondiente al valor 2. Así nacen los tipos de variables.

Dic
9

Espiando a la vecina del sexto

Categorías: 

En la entrega anterior (Tutorial 25) vimos como "interceptar" los mensajes de una aplicación y como interactuar con ellos.

En esta ocasión vamos a "interceptar" todo el escritorio de nuestra vecina, de tal modo que en nuestro ordenador estaremos viendo "en tiempo real" su escritorio.

Este tipo de aplicaciones se las conoce como "herramientas de asistencia remota", que de alguna forma permiten tomar el control del PC al que estamos dando asistencia.

Existen muchas herramientas de esto tipo, quizás la más conocida sea VNC (en sus distintas variantes: TeamViewer, UltraVNC, TightVNC, RealVNC, etc).

Tambien existe software comercial tipo PC AnyWhere, RemoteAdmin o incluso LogmeIn que puede funcionar también via web.

Incluso (si me equivoco ruego me perdonen) el MSN tiene disponible una opción para que un amigo tuyo tome el control de tú PC.

En el ejemplo que nos ocupa hoy solo vamos a capturar el escritorio, no podremos interactuar con el equipo remoto de ninguna forma, cosa que no ocurre con todos los programas anteriormente citados.

En la solución que acompaña a este tutorial existen dos proyectos: