El Libro del Día: 2015-10-19
Titulo: Sencha Touch Cookbook
Autor: Ajit Kumar
Editorial: Packt
Nro Paginas: 418
Capítulos:
Chapter 1: Gear Up for the Journey
Chapter 2: Catering to Your Form-related Needs
Chapter 3: Containers and Layouts
Chapter 4: Building Custom Views
Chapter 5: Dealing with Data and Data Sources
Chapter 6: Adding Components
Chapter 7: Adding Audio/Visual Appeal
Chapter 8: Taking Your Application Offline
Chapter 9: Increased Relevance Using Geolocation
Chapter 10: Device Integration
Descarga:
Sencha_Touch_Cookbook
Blog de Luis Dueñas dedicado a la difusión del Desarrollo en Microsoft .NET, Visual Studio, WinForms, WebForms, MVC, ASP .NET, jQuery, AJAX, HTML5, JavaScript, Móviles, etc. Encontrarás Libros, Demos, Artículos Técnicos, Entrenamiento.
Mostrando las entradas con la etiqueta Form. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Form. Mostrar todas las entradas
lunes, 19 de octubre de 2015
El Libro del Día: Sencha Touch Cookbook
Etiquetas:
Ajit Kumar,
App Offline,
Audio,
Components,
Containers,
Cookbook,
Custom Views,
Data,
Data Sources,
Form,
Geolocation,
Integration,
Layouts,
Libros,
Packt,
Sencha Touch,
Visual Appeal
jueves, 12 de febrero de 2015
El Libro del Día: HTML5 Up and Running
El Libro del Día: 2015-02-12
Titulo: HTML5 Up and Running
Autor: Mark Pilgrim
Editorial: O'Reilly
Nro Paginas: 222
Capítulos:
1. How Did We Get Here?
2. Detecting HTML5 Features
3. What Does It All Mean?
4. Let’s Call It a Draw(ing Surface)
5. Video on the Web
6. You Are Here (And So Is Everybody Else)
7. The Past, Present, and Future of Local Storage for Web Applications
8. Let’s Take This Offline
9. A Form of Madness
10. “Distributed,” “Extensibility,” and Other Fancy Words
Appendix: The All-in-One Almost-Alphabetical Guide to Detecting Everything
Descarga:
HTML5_Up_and_Running
Titulo: HTML5 Up and Running
Autor: Mark Pilgrim
Editorial: O'Reilly
Nro Paginas: 222
Capítulos:
1. How Did We Get Here?
2. Detecting HTML5 Features
3. What Does It All Mean?
4. Let’s Call It a Draw(ing Surface)
5. Video on the Web
6. You Are Here (And So Is Everybody Else)
7. The Past, Present, and Future of Local Storage for Web Applications
8. Let’s Take This Offline
9. A Form of Madness
10. “Distributed,” “Extensibility,” and Other Fancy Words
Appendix: The All-in-One Almost-Alphabetical Guide to Detecting Everything
Descarga:
HTML5_Up_and_Running
Etiquetas:
Distributed,
Drawing,
Extensibility,
Features,
Form,
Google,
HTML5,
Libros,
Local Storage,
Mark Pilgrim,
O'Reilly,
Offline,
Up and Running,
Video,
Web App
martes, 10 de febrero de 2015
El Libro del Día: jQuery 2.0 Development Cookbook
El Libro del Día: 2015-02-10
Titulo: jQuery 2.0 Development Cookbook
Autor: Leon Revill
Editorial: Packt
Nro Paginas: 410
Capítulos:
Chapter 1: Document Object Model Manipulation
Chapter 2: Interacting with the User by Making Use of jQuery Events
Chapter 3: Loading and Manipulating Dynamic Content with AJAX and JSON
Chapter 4: Adding Attractive Visuals with jQuery Effects
Chapter 5: Form Handling
Chapter 6: User Interface
Chapter 7: User Interface Animation
Chapter 8: Understanding Plugin Development
Chapter 9: jQuery UI
Chapter 10: Working with jQuery Mobile
Descarga:
jQuery_2.0_Development_Cookbook
Titulo: jQuery 2.0 Development Cookbook
Autor: Leon Revill
Editorial: Packt
Nro Paginas: 410
Capítulos:
Chapter 1: Document Object Model Manipulation
Chapter 2: Interacting with the User by Making Use of jQuery Events
Chapter 3: Loading and Manipulating Dynamic Content with AJAX and JSON
Chapter 4: Adding Attractive Visuals with jQuery Effects
Chapter 5: Form Handling
Chapter 6: User Interface
Chapter 7: User Interface Animation
Chapter 8: Understanding Plugin Development
Chapter 9: jQuery UI
Chapter 10: Working with jQuery Mobile
Descarga:
jQuery_2.0_Development_Cookbook
Etiquetas:
AJAX,
Animation,
Cookbook,
Development,
DOM,
Dynamic Content,
Effects,
Events,
Form,
jQuery,
jQuery Mobile,
jQuery UI,
JSON,
Leon Revill,
Libros,
Loading,
Packt,
Plugin,
User Interface,
Visuals
domingo, 18 de enero de 2015
El Libro del Día: jQuery and JavaScript Phrasebook
El Libro del Día: 2015-01-18
Titulo: jQuery and JavaScript Phrasebook
Autor: Brad Dayley
Editorial: Addison Wesley
Nro Paginas: 382
Capítulos:
1 Jumping into jQuery, JavaScript, and the World of Dynamic Web Development
2 Using the JavaScript Language
3 Interacting with the Browser
4 Accessing HTML Elements
5 Manipulating the jQuery Object Set
6 Capturing and Using Browser and User Events
7 Manipulating Web Page Elements Dynamically
8 Manipulating Web Page Layout Dynamically
9 Dynamically Working with Form Elements
10 Building Web Page Content Dynamically
11 Adding jQuery UI Elements
12 Animation and Other Special Effects
13 Using AJAX to Communicate with Web Servers and Web Services
14 Implementing Mobile Web Sites with jQuery
Descarga:
jQuery and JavaScript Phrasebook
Titulo: jQuery and JavaScript Phrasebook
Autor: Brad Dayley
Editorial: Addison Wesley
Nro Paginas: 382
Capítulos:
1 Jumping into jQuery, JavaScript, and the World of Dynamic Web Development
2 Using the JavaScript Language
3 Interacting with the Browser
4 Accessing HTML Elements
5 Manipulating the jQuery Object Set
6 Capturing and Using Browser and User Events
7 Manipulating Web Page Elements Dynamically
8 Manipulating Web Page Layout Dynamically
9 Dynamically Working with Form Elements
10 Building Web Page Content Dynamically
11 Adding jQuery UI Elements
12 Animation and Other Special Effects
13 Using AJAX to Communicate with Web Servers and Web Services
14 Implementing Mobile Web Sites with jQuery
Descarga:
jQuery and JavaScript Phrasebook
Etiquetas:
Addison Wesley,
AJAX,
Animation,
Brad Dayley,
Browser,
Content,
Dynamically,
Effects,
Elements,
Form,
HTML,
Javascript,
jQuery,
jQuery UI,
Language,
Layout,
Libros,
Object Set,
Phrasebook,
User Events
viernes, 24 de octubre de 2014
El Libro del Día: La Biblia de Visual Basic .NET (Cap 4)
El Libro del Día: 2014-10-24
Titulo: La Biblia de Visual Basic .NET (Capítulo 4)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 158
Capítulo 4: Desarrollando Aplicaciones Windows Forms
1. Trabajando con el Formulario y los Controles Windows
1.1. Trabajando con el Formulario Windows
1.2. Usando Controles Básicos
1.3. Usando Controles de Listas
1.4. Usando Controles de Vistas
2. Creando Formularios MDIs, Menús, Diálogos y Barras
2.1. Creando Formularios MDIs
2.2. Creando Menús
2.3. Usando Dialogos de Windows
2.4. Agregando Barras
3. Usando el Control DataGridView
3.1. Personalizando Columnas en el DataGridView
3.2. Mostrando una Imagen en una Columna
3.3. Personalizando las Cabeceras de las Columnas
3.4. Graficando en el DataGridView
3.5. Paginando en un DataGridView
4. Creando una Biblioteca de Controles Windows
4.1. Creando Controles Extendidos
4.2. Creando Controles de Usuario
4.3. Creando Controles Personalizados
5. Creando Reportes e Impresiones en Windows Forms
5.1. Usando PrintDocument
5.2. Informes de Microsoft
5.3. Trabajando con Word
5.4. Trabajando con Excel
5.5. Usando el Control Chart
Descarga:
Biblia_VisualBasicNET_Capitulo4
Titulo: La Biblia de Visual Basic .NET (Capítulo 4)
Autor: Luis Dueñas Huaroto
Editorial: Coredise
Nro Paginas: 158
Capítulo 4: Desarrollando Aplicaciones Windows Forms
1. Trabajando con el Formulario y los Controles Windows
1.1. Trabajando con el Formulario Windows
1.2. Usando Controles Básicos
1.3. Usando Controles de Listas
1.4. Usando Controles de Vistas
2. Creando Formularios MDIs, Menús, Diálogos y Barras
2.1. Creando Formularios MDIs
2.2. Creando Menús
2.3. Usando Dialogos de Windows
2.4. Agregando Barras
3. Usando el Control DataGridView
3.1. Personalizando Columnas en el DataGridView
3.2. Mostrando una Imagen en una Columna
3.3. Personalizando las Cabeceras de las Columnas
3.4. Graficando en el DataGridView
3.5. Paginando en un DataGridView
4. Creando una Biblioteca de Controles Windows
4.1. Creando Controles Extendidos
4.2. Creando Controles de Usuario
4.3. Creando Controles Personalizados
5. Creando Reportes e Impresiones en Windows Forms
5.1. Usando PrintDocument
5.2. Informes de Microsoft
5.3. Trabajando con Word
5.4. Trabajando con Excel
5.5. Usando el Control Chart
Descarga:
Biblia_VisualBasicNET_Capitulo4
Etiquetas:
Barras,
Bibliotecas,
Chart,
Controles,
Coredise,
DataGridView,
Diálogos,
Form,
La Biblia,
Lduenas,
Libros,
Listas,
Luis Dueñas Huaroto,
MDIs,
Menús,
MS Reports,
PrintDocument,
Vistas,
Visual Basic .NET,
WinForms
martes, 21 de octubre de 2014
El Demo del Día: Capturar y Reproducir Pantallas en WinForms
Capturar y Reproducir Pantallas en WinForms
En este post veremos como crear una aplicación que permita lanzar cualquier aplicación o programa (archivo exe) y como capturamos la pantalla (en realidad las ventanas) de dicha aplicación hasta que esta finalice, ya sea en forma normal (por el cierre del usuario) o por una excepción No controlada por la aplicación.
Requerimiento
A veces no tenemos el código fuente de un programa que presenta problemas en su funcionamiento y no se sabe porque se cae, ya que No tiene Log de errores o una forma de saber porque se cerró.
Solución
Para resolver el problema vamos a construir una aplicación en Windows Forms que permita lanzar la aplicación o programa, luego capturar sus pantallas y finalmente mostrar la secuencia de pantallas como si fuera un video, aunque no lo sea (por el momento).
La técnica consiste en crear un objeto Pantalla con un par de propiedades: Fecha y Hora de Captura e Imagen a Capturar, luego lanzaremos la aplicación con Process.Start y habilitaremos un Timer que cada segundo verifique si el proceso esta en ejecución y si lo esta enviaremos la tecla capturar ventana y recuperaremos del Clipboard la imagen guardándola en el objeto y agregándola a una lista de objetos.
Si se salio de la aplicación analizada, se serializará en forma binaria y se guardará la lista de objetos en un archivo llamado "PrintScreen.dll" e inmediatamente se habilitará otro Timer que permite mostrar cada imagen de la lista de imagen.
Crear la Aplicación Windows en Windows Forms
Crear un Nuevo Proyecto "Aplicación de Windows Forms" en C# llamado: "CapturaPantalla" y agregar la clase "bePantalla" como sigue:
using System;
using System.Collections.Generic;
using System.Drawing;
namespace CapturaPantalla
{
[Serializable]
public class bePantalla
{
public DateTime FechaHora { get; set; }
public Image Imagen { get; set; }
}
}
El diseño de la pantalla debe quedar como se muestra a continuación:
Escribir el siguiente código en el formulario "frmCaptura":
using System;
using System.Collections.Generic; //List
using System.Windows.Forms; //Form, SendKeys, Clipboard, etc
using System.Drawing; //Image, Bitmap, Size
using System.Diagnostics; //Process
using System.IO; //FileStream, FileMode, FileAccess, FileShare
using System.Runtime.Serialization.Formatters.Binary; //BinaryFormatter
namespace CapturaPantalla
{
public partial class frmCaptura : Form
{
private Process proceso;
private List<bePantalla> lbePantalla;
private int c;
public frmCaptura()
{
InitializeComponent();
}
private void mostrarDialogoAbrir(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Selecciona un archivos de programa";
ofd.Filter = "Archivos de programa|*.exe";
if (ofd.ShowDialog().Equals(DialogResult.OK))
{
txtArchivo.Text = ofd.FileName;
}
}
private void iniciarCaptura(object sender, EventArgs e)
{
this.Visible = false;
pnlCaptura.Visible = false;
lbePantalla = new List<bePantalla>();
proceso = Process.Start(txtArchivo.Text);
tmrCaptura.Enabled = true;
tmrCaptura.Start();
}
private void capturarPantalla(object sender, EventArgs e)
{
if (proceso != null && !proceso.HasExited)
{
SendKeys.SendWait("%{PRTSC}");
Image img = Clipboard.GetImage();
if (img != null)
{
bePantalla obePantalla = new bePantalla();
obePantalla.FechaHora = DateTime.Now;
obePantalla.Imagen = img;
lbePantalla.Add(obePantalla);
}
}
else
{
this.Visible = true;
tmrCaptura.Stop();
tmrCaptura.Enabled = false;
using(FileStream fs=new FileStream("PrintScreen.dll",
FileMode.Create, FileAccess.Write,FileShare.Write))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, lbePantalla);
}
tmrReproduce.Enabled = true;
tmrReproduce.Start();
c = 0;
}
}
private void reproducirCaptura(object sender, EventArgs e)
{
if (lbePantalla.Count>0)
{
if (c < lbePantalla.Count)
{
this.Text = String.Format("{0} de {1} - {2}",c+1,
lbePantalla.Count,lbePantalla[c].FechaHora);
this.BackgroundImage = new Bitmap(lbePantalla[c].Imagen,
new Size(this.ClientRectangle.Width,this.ClientRectangle.Height));
c++;
}
else c = 0;
}
}
}
}
Nota: La asociación de funciones controladoras de eventos es la siguiente:
- mostrarDialogoAbrir: Evento Click del botón "btnAbrir"
- iniciarCaptura: Evento Click del botón "btnIniciar"
- capturarPantalla: Evento Tick del timer "tmrCaptura"
- reproducirCaptura: Evento Tick del timer "tmrReproduce"
Ejecutar y Probar la Aplicación Windows Forms
Grabar la aplicación, ejecutarla y se mostrará la siguiente ventana:
Seleccionar un archivo de programa a ejecutar y capturar sus pantallas, por ejemplo seleccione el archivo llamado: "AppCapturar.exe" que viene en la carpeta bin\debug del Demo y se mostrará la ventana con dicha aplicación.
Nota: En ese momento el panel con el archivo seleccionado se ha ocultado para después mostrar en toda la ventana o formulario las pantallas capturadas.
Esta aplicación permite ingresar los datos del Empleado: Código (string), Nombre (string) y Sueldo (decimal) en un objeto, pero No hay una validación para el tipo de datos.
Ingresar unos cuantos empleados, como se muestra en la figura:
Después de ingresar correctamente varios, probar ingresar textos en el sueldo y al grabar la aplicación se caerá e inmediatamente finalizará regresando a la aplicación anterior (CapturaPantalla).
Se creará un archivo llamado "PrintScreen.dll" con la lista de objetos (pantallas) serializadas y se mostrará el contenido de la lista en el mismo formulario como si fuese un video, tal como se muestra a continuación:
Nota: La imagen de la pantalla capturada se ha ajustado al tamaño del formulario o ventana.
Comentario
Si bien es cierto, existen muchos programas que capturan pantalla, lo graban en un video y lo reproducen, en este demo, hemos visto que es relativamente sencillo capturar y reproducir mediante poco código.
En nuestro caso hemos usado los métodos "SendKeys.SendWait" para capturar la ventana activa, "Clipboard.GetImage" para recuperar de la memoria la imagen y una Lista de Objetos para almacenar las pantallas y luego reproducirlas.
En un post futuro la secuencia de imágenes o pantallas capturadas la grabaremos en un formato de video, como un archivo AVI, MPEG o MP4. Inténtelo desde ahora y diviértanse en el intento.
Descarga:
Demo22_CapturaReproducePantalla
En este post veremos como crear una aplicación que permita lanzar cualquier aplicación o programa (archivo exe) y como capturamos la pantalla (en realidad las ventanas) de dicha aplicación hasta que esta finalice, ya sea en forma normal (por el cierre del usuario) o por una excepción No controlada por la aplicación.
Requerimiento
A veces no tenemos el código fuente de un programa que presenta problemas en su funcionamiento y no se sabe porque se cae, ya que No tiene Log de errores o una forma de saber porque se cerró.
Solución
Para resolver el problema vamos a construir una aplicación en Windows Forms que permita lanzar la aplicación o programa, luego capturar sus pantallas y finalmente mostrar la secuencia de pantallas como si fuera un video, aunque no lo sea (por el momento).
La técnica consiste en crear un objeto Pantalla con un par de propiedades: Fecha y Hora de Captura e Imagen a Capturar, luego lanzaremos la aplicación con Process.Start y habilitaremos un Timer que cada segundo verifique si el proceso esta en ejecución y si lo esta enviaremos la tecla capturar ventana y recuperaremos del Clipboard la imagen guardándola en el objeto y agregándola a una lista de objetos.
Si se salio de la aplicación analizada, se serializará en forma binaria y se guardará la lista de objetos en un archivo llamado "PrintScreen.dll" e inmediatamente se habilitará otro Timer que permite mostrar cada imagen de la lista de imagen.
Crear la Aplicación Windows en Windows Forms
Crear un Nuevo Proyecto "Aplicación de Windows Forms" en C# llamado: "CapturaPantalla" y agregar la clase "bePantalla" como sigue:
using System;
using System.Collections.Generic;
using System.Drawing;
namespace CapturaPantalla
{
[Serializable]
public class bePantalla
{
public DateTime FechaHora { get; set; }
public Image Imagen { get; set; }
}
}
Nota: Se usa el atributo Serializable sobre la clase bePantalla porque vamos a guardarlo en un archivo binario serializando.
Cambiar de nombre al formulario por: "frmCaptura" y arratrar los siguientes controles:
- Panel: pnlCaptura
- Label: lblTitulo con el Text="Selecciona el Programa a Capturar la Pantalla"
- TextBox: txtArchivo
- Button: btnIniciar con Text="Iniciar"
- Timer: tmrCaptura con Interval=1000
- Timer: tmrReproduce con Interval=1000
El diseño de la pantalla debe quedar como se muestra a continuación:
Escribir el siguiente código en el formulario "frmCaptura":
using System;
using System.Collections.Generic; //List
using System.Windows.Forms; //Form, SendKeys, Clipboard, etc
using System.Drawing; //Image, Bitmap, Size
using System.Diagnostics; //Process
using System.IO; //FileStream, FileMode, FileAccess, FileShare
using System.Runtime.Serialization.Formatters.Binary; //BinaryFormatter
namespace CapturaPantalla
{
public partial class frmCaptura : Form
{
private Process proceso;
private List<bePantalla> lbePantalla;
private int c;
public frmCaptura()
{
InitializeComponent();
}
private void mostrarDialogoAbrir(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Selecciona un archivos de programa";
ofd.Filter = "Archivos de programa|*.exe";
if (ofd.ShowDialog().Equals(DialogResult.OK))
{
txtArchivo.Text = ofd.FileName;
}
}
private void iniciarCaptura(object sender, EventArgs e)
{
this.Visible = false;
pnlCaptura.Visible = false;
lbePantalla = new List<bePantalla>();
proceso = Process.Start(txtArchivo.Text);
tmrCaptura.Enabled = true;
tmrCaptura.Start();
}
private void capturarPantalla(object sender, EventArgs e)
{
if (proceso != null && !proceso.HasExited)
{
SendKeys.SendWait("%{PRTSC}");
Image img = Clipboard.GetImage();
if (img != null)
{
bePantalla obePantalla = new bePantalla();
obePantalla.FechaHora = DateTime.Now;
obePantalla.Imagen = img;
lbePantalla.Add(obePantalla);
}
}
else
{
this.Visible = true;
tmrCaptura.Stop();
tmrCaptura.Enabled = false;
using(FileStream fs=new FileStream("PrintScreen.dll",
FileMode.Create, FileAccess.Write,FileShare.Write))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, lbePantalla);
}
tmrReproduce.Enabled = true;
tmrReproduce.Start();
c = 0;
}
}
private void reproducirCaptura(object sender, EventArgs e)
{
if (lbePantalla.Count>0)
{
if (c < lbePantalla.Count)
{
this.Text = String.Format("{0} de {1} - {2}",c+1,
lbePantalla.Count,lbePantalla[c].FechaHora);
this.BackgroundImage = new Bitmap(lbePantalla[c].Imagen,
new Size(this.ClientRectangle.Width,this.ClientRectangle.Height));
c++;
}
else c = 0;
}
}
}
}
Nota: La asociación de funciones controladoras de eventos es la siguiente:
- mostrarDialogoAbrir: Evento Click del botón "btnAbrir"
- iniciarCaptura: Evento Click del botón "btnIniciar"
- capturarPantalla: Evento Tick del timer "tmrCaptura"
- reproducirCaptura: Evento Tick del timer "tmrReproduce"
Ejecutar y Probar la Aplicación Windows Forms
Grabar la aplicación, ejecutarla y se mostrará la siguiente ventana:
Seleccionar un archivo de programa a ejecutar y capturar sus pantallas, por ejemplo seleccione el archivo llamado: "AppCapturar.exe" que viene en la carpeta bin\debug del Demo y se mostrará la ventana con dicha aplicación.
Nota: En ese momento el panel con el archivo seleccionado se ha ocultado para después mostrar en toda la ventana o formulario las pantallas capturadas.
Esta aplicación permite ingresar los datos del Empleado: Código (string), Nombre (string) y Sueldo (decimal) en un objeto, pero No hay una validación para el tipo de datos.
Ingresar unos cuantos empleados, como se muestra en la figura:
Después de ingresar correctamente varios, probar ingresar textos en el sueldo y al grabar la aplicación se caerá e inmediatamente finalizará regresando a la aplicación anterior (CapturaPantalla).
Se creará un archivo llamado "PrintScreen.dll" con la lista de objetos (pantallas) serializadas y se mostrará el contenido de la lista en el mismo formulario como si fuese un video, tal como se muestra a continuación:
Nota: La imagen de la pantalla capturada se ha ajustado al tamaño del formulario o ventana.
Comentario
Si bien es cierto, existen muchos programas que capturan pantalla, lo graban en un video y lo reproducen, en este demo, hemos visto que es relativamente sencillo capturar y reproducir mediante poco código.
En nuestro caso hemos usado los métodos "SendKeys.SendWait" para capturar la ventana activa, "Clipboard.GetImage" para recuperar de la memoria la imagen y una Lista de Objetos para almacenar las pantallas y luego reproducirlas.
En un post futuro la secuencia de imágenes o pantallas capturadas la grabaremos en un formato de video, como un archivo AVI, MPEG o MP4. Inténtelo desde ahora y diviértanse en el intento.
Descarga:
Demo22_CapturaReproducePantalla
Etiquetas:
.NET,
BackgroundImage,
BinaryFormatter,
Bitmap,
C#,
Capturar Pantalla,
Clipboard,
Demos,
FileStream,
Form,
Image,
Lduenas,
Process,
Reproducir Pantalla,
SendKeys,
Serializar,
Timer,
Video,
Windows Forms
Suscribirse a:
Entradas (Atom)








