Mostrando entradas con la etiqueta csharp. Mostrar todas las entradas
Mostrando entradas con la etiqueta csharp. Mostrar todas las entradas
5/06/2014
Cómo hacer screenshot captura pantalla pantallazo en C Sharp NET
Etiquetas:
c sharp,
c#,
captura,
código fuente,
csharp,
desarrollo,
lenguaje,
open source,
pantalla,
pantallazo,
programación,
screenshot,
source code,
videotutorial
5/01/2014
AjpdSoft Generador y lector códigos QR | Gratuito | Código fuente open s...
Etiquetas:
.net,
barcode,
c sharp,
c#,
código barras,
código fuente,
csharp,
desarrollo,
lenguaje,
open source,
programación,
qr,
source code,
videotutorial,
visual studio .net
AjpdSoft Indexar texto PDF | Freeware Open Source en C# C Sharp
Etiquetas:
.net,
barcode,
c sharp,
c#,
código fuente,
csharp,
desarrollo,
freeware,
indexar,
lenguaje,
open source,
pdf,
programación,
soure code,
texto,
videotutorial,
visual studio .net
4/21/2014
AjpdSoft Gestión VMware ESXi y vCenter
Descarga gratuita (freeware) del código fuente (source code) 100% open source, desarrollado con Visual Studio .Net 2013 (C# C Sharp .NET) de la aplicación AjpdSoft Gestión VMware ESXi y vCenter:
accede a un servidor VMware ESXi o a un clúster de servidores VMware
vCenter Server y obtiene todas las máquinas virtuales y sus datos
básicos (nombre máquina virtual, estado (PowerState), tiempo de
inicio, estado conexión, vRAM, vCPU, cores por socket, estado VMware
Tools, hostname, IP, sistema operativo , ruta ficheros MV, ID Guest,
Uuid, WWN, anotaciones, número de discos, tamaño, ficheros que
componen la MV, alarmas, etc.). Además, esta aplicación también permite
ejecutar acciones sobre las máquinas virtuales como: iniciar máquina
virtual, apagar, pausar, resetear, reiniciar sistema operativo, apagar
sistema operativo, actualizar VMware Tools, instalar VMware Tools,
desmontar CD VMware Tools, cambiar nombre a máquina virtual, crear
snapshot, etc..
accede a un servidor VMware ESXi o a un clúster de servidores VMware
vCenter Server y obtiene todas las máquinas virtuales y sus datos
básicos (nombre máquina virtual, estado (PowerState), tiempo de
inicio, estado conexión, vRAM, vCPU, cores por socket, estado VMware
Tools, hostname, IP, sistema operativo , ruta ficheros MV, ID Guest,
Uuid, WWN, anotaciones, número de discos, tamaño, ficheros que
componen la MV, alarmas, etc.). Además, esta aplicación también permite
ejecutar acciones sobre las máquinas virtuales como: iniciar máquina
virtual, apagar, pausar, resetear, reiniciar sistema operativo, apagar
sistema operativo, actualizar VMware Tools, instalar VMware Tools,
desmontar CD VMware Tools, cambiar nombre a máquina virtual, crear
snapshot, etc..
4/20/2014
Administración VMware ESXi y vCenter con PowerCLI y VIX API con C# Proyecto AjpdSoft
Tutorial donde mostramos paso a paso cómo administrar y acceder a la información de un servidor de virtualización VMware ESXi o a un clúster de servidores VMware ESXi con VMware vCenter Server.
Mostramos cómo realizar tareas habituales (encender, apagar, reiniciar,
resetear, snapshot, cambiar nombre, etc) a máquinas virtuales mediante VMware vSphere PowerCLI y una aplicación completa en C# C Sharp para ejemplo de uso de VMware VIX API, con el código fuente incluido: AjpdSoft Gestión VMware ESXi y vCenter.
Mostramos cómo realizar tareas habituales (encender, apagar, reiniciar,
resetear, snapshot, cambiar nombre, etc) a máquinas virtuales mediante VMware vSphere PowerCLI y una aplicación completa en C# C Sharp para ejemplo de uso de VMware VIX API, con el código fuente incluido: AjpdSoft Gestión VMware ESXi y vCenter.
Etiquetas:
api,
c sharp,
c#,
csharp,
desarrollo,
esx,
esxi,
powercli,
programación,
vcenter,
vix,
vmware
7/31/2013
Obtener versiones de .Net Framework instaladas C#
Función que obtiene en una lista todas las versiones de .Net Framework instaladas en el equipo.
1/22/2013
Exportar DataGridView a fichero CSV C# C Sharp
Exportar DataGridView a fichero CSV C# C Sharp
* dlGuardar: componente de tipo SaveFileDialog.
* dbTabla: componente de tipo DataGridView con los datos a exportar a fichero.
Explicamos cómo exportar el
contenido de un DataGridView a un fichero de texto plano separado por
punto y coma, que se puede abrir con Office Excel, OpenOffice Calc o con
LibreOffice Calc, incluso con cualquier editor de texto plano (notepad,
vi, nano).
dlGuardar.Filter = "Fichero CSV (*.csv)|*.csv";
dlGuardar.FileName = "Datos_sqlite";
dlGuardar.Title = "Exportar a CSV";
if (dlGuardar.ShowDialog() == DialogResult.OK)
{
StringBuilder csvMemoria = new StringBuilder();
//para los títulos de las columnas, encabezado
for (int i = 0; i < dbTabla.Columns.Count; i++)
{
if (i == dbTabla.Columns.Count - 1)
{
csvMemoria.Append(String.Format("\"{0}\"",
dbTabla.Columns[i].HeaderText));
}
else
{
csvMemoria.Append(String.Format("\"{0}\";",
dbTabla.Columns[i].HeaderText));
}
}
csvMemoria.AppendLine();
for (int m = 0; m < dbTabla.Rows.Count; m++)
{
for (int n = 0; n < dbTabla.Columns.Count; n++)
{
//si es la última columna no poner el ;
if (n == dbTabla.Columns.Count - 1)
{
csvMemoria.Append(String.Format("\"{0}\"",
dbTabla.Rows[m].Cells[n].Value));
}
else
{
csvMemoria.Append(String.Format("\"{0}\";",
dbTabla.Rows[m].Cells[n].Value));
}
}
csvMemoria.AppendLine();
}
System.IO.StreamWriter sw =
new System.IO.StreamWriter(dlGuardar.FileName, false,
System.Text.Encoding.Default);
sw.Write(csvMemoria.ToString());
sw.Close();
}
Donde:* dlGuardar: componente de tipo SaveFileDialog.
* dbTabla: componente de tipo DataGridView con los datos a exportar a fichero.
12/05/2012
Exportar ListView a fichero CSV C# CSharp
Exportar ListView a fichero CSV C# Proyecto AjpdSoft
Explicamos cómo exportar el contenido de un ListView con varias columnas a un fichero de texto plano separado por punto y coma, que se puede abrir con Office Excel, OpenOffice Calc o con LibreOffice Calc, incluso con cualquier editor de texto plano (notepad, vi, nano).
dlGuardar.Filter = "Fichero CSV (*.csv)|*.csv";
dlGuardar.FileName = "Lista PDF Nóminas";
dlGuardar.Title = "Exportar a CSV";
if (dlGuardar.ShowDialog() == DialogResult.OK)
{
StringBuilder csvMemoria = new StringBuilder();
foreach (ColumnHeader columnasLista in lsPDF.Columns)
{
csvMemoria.Append(String.Format("\"{0}\";", columnasLista.Text));
}
csvMemoria.AppendLine();
foreach (ListViewItem elementosLista in lsPDF.Items)
{
foreach (ListViewItem.ListViewSubItem lvs in elementosLista.SubItems)
{
if (lvs.Text.Trim() == string.Empty)
csvMemoria.Append("\"\";");
else
csvMemoria.Append(String.Format("\"{0}\";", lvs.Text));
}
csvMemoria.AppendLine();
}
System.IO.StreamWriter sw =
new System.IO.StreamWriter(dlGuardar.FileName, false,
System.Text.Encoding.Default);
sw.Write(csvMemoria.ToString());
sw.Close();
Donde: - dlGuardar: será un componente no visual de tipo SaveFileDialog.
- lsPDF: ListView.
12/02/2012
Desarrollar aplicación C# con acceso nativo a MySQL Server mediante ADO.NET
Explicamos en este tutorial cómo desarrollar una aplicación con el lenguaje de programación Microsoft Visual C# .Net (de la suite de desarrollo Microsoft Visual Studio .Net 2010). Explicamos cómo realizar una conexión nativa (sin utilizar intermediarios como ODBC ni OLE DB) a un servidor de bases de datos MySQL Server (sea en Linux o en Windows) desde nuestra aplicación Microsoft Visual C# .Net mediante ADO.NET (MySQL Connector Net).
- Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual C# .Net y driver Connector/Net ADO.NET.
- Desarrollar aplicación C# para acceso a MySQL Server de forma nativa con ADO.NET Driver for MySQL (Connector/NET).
- AjpdSoft Acceso MySQL con ADO.NET en C# en funcionamiento.
- Artículos relacionados.
- Créditos.
Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual C# .Net y driver Connector/Net ADO.NET
A continuación indicamos los requisitos necesarios para desarrollar una aplicación, usando el IDE de desarrollo Microsoft Visual C# .Net, que acceda de forma nativa (directa sin intermediarios) al motor de base de datos gratuito MySQL Server:
- Suite de desarrollo Microsoft Visual Studio .Net 2010: en el siguiente tutorial explicamos cómo instalar este entorno de desarrollo de aplicaciones .Net:
- Driver Connector/Net de MySQL: necesitaremos las librerías proporcionadas por MySQL para acceso nativo desde .Net, disponibles en el sitio web oficial de MySQL, en la URL:
http://dev.mysql.com/downloads/connector/net
En nuestro caso descargaremos la versión 6.6.4 y la plataforma (Select Platform) "Microsoft Windows", descargaremos "Windows (x86, 32-bit), MSI Installer" (mysql-connector-net-6.6.4.msi):
Ejecutaremos el fichero mysql-connector-net-6.6.4.msi descargado:
Pulsaremos en "Ejecutar" en la ventana de Advertencia de seguridad de Abrir archivo:
Se iniciará el asistente de instalación de MySQL Connector Net 6.6.4, pulsaremos "Next":Pulsaremos en "Custom" para realizar una instalación personalizada:Los componentes a instalar:
- Entity Framework Support.
- Core Components.
- Documentation.
- Web Providers.
- Compact Framework Support.
- Visua Studio Integration.
- Samples.
Pulsaremos "Nex" para continuar con la instalación de MySQL Connector Net:Pulsaremos "Install" para iniciar la instalación definitiva de MySQL Connector Net:Tras la instalación de MySQL Connector Net 6.6.4, el asistente nos indicará que la instalación ha finalizado. Pulsaremos "Finish":
- Servidor con MySQL Server: necesitaremos, obviamente, un equipo con el motor de base de datos MySQL instalado y funcionando. En los siguientes enlaces mostramos algunos ejemplos sobre cómo montar un servidor de MySQL Server en varios sistemas operativos:
Desarrollar aplicación C# para acceso a MySQL Server de forma nativa con ADO.NET Driver for MySQL (Connector/NET)
Abriremos Microsoft Visual Studio .Net 2010,
pulsaremos en el menú "Archivo" - "Nuevo proyecto", seleccionaremos
"Visual C#", indicaremos un nombre para la solución, por ejemplo
"AjpdSoftAccesoMySQLCSharp":
Añadiremos una referencia a la librería de MySQL
ADO.NET (Connector/NET), para ello pulsaremos en el menú "Proyecto" -
"Agregar referencia":
Buscaremos el fichero "MySql.Data.dll" en la carepta de instalación de ADO.NET Driver for MySQL (Connector/NET):
Añadiremos todos los componentes al formulario de la
aplicación C#, usaremos varios TextBox para introducir el servidor,
usuario, puerto, contraseña y SQL
a ejecutar. Añadiremos ComboBox para mostrar los esquemas (bases de
datos) y las tablas y varios Button. Añadiremos también un DataGridView
para mostrar el resultado de las consultas SQL:
La descarga gratuita del código fuente completo: AjpdSoft Acceso MySQL con ADO.NET en C#.
Añadiremos en el código la cláusula:
using MySql.Data.MySqlClient;
y añadiremos la declaración de la conexión dentro de la clase del formulario:
private MySqlConnection conexionBD;
El código C# completo de la aplicación (para los botones de conectar con servidor, usar esquema, añadir select SQL y ejecutar consulta SQL, así como las funciones para obtener las bases de datos de MySQL y las tablas de la base de datos seleccionada se muestra a continuación:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace AjpdSoftAccesoMySQLCsharp
{
public partial class formAccesoMySQL : Form
{
private MySqlConnection conexionBD;
private void obtenerBasesDatosMySQL ()
{
MySqlDataReader registrosObtenidosMySQL = null;
MySqlCommand cmd =
new MySqlCommand("SHOW DATABASES", conexionBD);
try
{
registrosObtenidosMySQL = cmd.ExecuteReader();
lsBD.Items.Clear();
while (registrosObtenidosMySQL.Read())
{
lsBD.Items.Add(registrosObtenidosMySQL.GetString(0));
}
}
catch (MySqlException ex)
{
MessageBox.Show("Error al obtener bases de datos de MySQL: " +
ex.Message,"Error al obtener catálogos",
MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
if (registrosObtenidosMySQL != null)
registrosObtenidosMySQL.Close();
}
}
private void obtenerTablasBDMysql(string bd)
{
MySqlDataReader reader = null;
try
{
conexionBD.ChangeDatabase(bd);
MySqlCommand cmd = new MySqlCommand("SHOW TABLES", conexionBD);
reader = cmd.ExecuteReader();
lsTablas.Items.Clear();
while (reader.Read())
{
lsTablas.Items.Add(reader.GetString(0));
}
}
catch (MySqlException ex)
{
MessageBox.Show("Error al obtener la lista de tablas " +
"de la BD de MySQL: " +
ex.Message,"Error obtener tablas",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (reader != null) reader.Close();
}
}
public formAccesoMySQL()
{
InitializeComponent();
}
private void btConectar_Click(object sender, EventArgs e)
{
if (conexionBD != null)
conexionBD.Close();
string connStr =
String.Format("server={0};port={1};user id={2}; password={3}; " +
"database=mysql; pooling=false;" +
"Allow Zero Datetime=False;Convert Zero Datetime=True",
txtServidor.Text,txtPuerto.Text, txtUsuario.Text, txtContrasena.Text);
try
{
conexionBD = new MySqlConnection(connStr);
conexionBD.Open();
obtenerBasesDatosMySQL();
}
catch (MySqlException ex)
{
MessageBox.Show("Error al conectar al servidor de MySQL: " +
ex.Message, "Error al conectar",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btSelectSQL_Click(object sender, EventArgs e)
{
txtSQL.Text = "select * from " + lsTablas.Text;
}
private void btUsarEsquema_Click(object sender, EventArgs e)
{
obtenerTablasBDMysql(lsBD.Text);
}
private void btEjecutar_Click(object sender, EventArgs e)
{
if (opDatos.Checked)
{
DataTable tabla;
MySqlDataAdapter datosAdapter;
MySqlCommandBuilder comandoSQL;
try
{
tabla = new DataTable();
datosAdapter = new MySqlDataAdapter(txtSQL.Text, conexionBD);
comandoSQL = new MySqlCommandBuilder(datosAdapter);
datosAdapter.Fill(tabla);
dbGrid.DataSource = tabla;
}
catch (Exception ex)
{
MessageBox.Show("Error al mostrar los datos de la tabla [" +
lsTablas.Text + "] de MySQL: " +
ex.Message, "Error ejecutar SQL",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
if (opNoDatos.Checked)
{
try
{
int numeroRegistrosAfectados = 0;
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conexionBD;
cmd.CommandText = txtSQL.Text;
cmd.Prepare();
numeroRegistrosAfectados = cmd.ExecuteNonQuery();
MessageBox.Show("Consulta de modificación de datos " +
"ejecutada, número de registros afectados: " +
Convert.ToString(numeroRegistrosAfectados) + ".",
"Consulta SQL ejecutada",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Error ejecutar consulta de " +
"modificación de datos: " +
ex.Message, "Error ejecutar SQL",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void linkAjpdSoft_LinkClicked(object sender,
LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("http://www.ajpdsoft.com");
}
}
}
AjpdSoft Acceso MySQL con ADO.NET en C# en funcionamiento
A continuación explicamos cómo funciona AjpdSoft Acceso MySQL con ADO.NET en C#. En primer lugar introduciremos los datos del servidor de MySQL Server al que nos conectaremos:
- Servidor: ip o nombre DNS (hostname) del servidor con MySQL Server.
- Puerto: puerto por el que nos conectaremos, por defecto para MySQL 3306.
- Usuario: usuario de MySQL Server con permisos suficientes.
- Contraseña: contraseña del usuario anterior.
Tras introducir los datos de conexión pulsaremos en
el botón "1 Conectar con servidor", si los datos son correctos y el
servidor está disponible, la aplicación obtendrá los catálogos (bases de
datos) del servidor de MySQL Server (a los que el usuario tenga permisos):
Seleccionaremos el catálogo (esquema o base de datos) que usaremos en "Usar el esquema (BD)":
Pulsaremos en "2 Usar el esquema", si todo es correcto la aplicación obtendrá todas las tablas del esquema seleccionado:
Seleccionaremos la tabla que usaremos para la consulta SQL y pulsaremos "3 Select (SQL) de la tabla":
Introduciremos la consulta SQL que queramos (o dejaremos la de defecto "select * from nombre_tabla), marcaremos "Devuelve datos" y pulsaremos "Ejecutar":
Si la consulta SQL es correcta la aplicación mostrará el resultado en el grid de datos:
Para ejecutar una consulta SQL de actualización de datos (update, delete, insert, drop, create) marcaremos el "No devuelve datos":
Para este tipo de consultas SQL la aplicación devolverá el número de registros afectados:
Artículos relacionados
- AjpdSoft Acceso MySQL con ADO.NET en C#.
- Capturar pantalla screenshot con Visual C#.
- Separar páginas pdf en un pdf por cada página con PDFsharp y Visual C# C Sharp.
- Extraer texto y metadatos de fichero PDF con Visual C# .Net y iTextSharp.
- Instalar Microsoft Visual Studio .Net 2010 y desarrollar aplicación con acceso a PostgreSQL.
- Convertir texto a PDF con iTextSharp y Visual Basic .Net VB.Net.
- Generar y leer códigos QR Quick Response Barcode con Visual Basic .Net VB.Net.
- Cómo desarrollar una aplicación de servicio en Windows con Visual Basic .Net.
- Estructura del código de barras EAN 13 y ejemplo en Delphi de obtención de datos.
- AjpdSoft Generador de códigos de barras.
- AjpdSoft extraer texto PDF Delphi.
- AjpdSoft Convertir Texto a PDF VB.Net.
- AjpdSoft Indexar Texto PDF C# iTextSharp.
- AjpdSoft Separar Páginas PDF código fuente Visual C# .Net.
- AjpdSoft Socket VB.Net.
- AjpdSoft Envío SMS VB.Net.
- AjpdSoft Inventario PCs - Código fuente Delphi.
- AjpdSoft Insertar Evento Google Calendar VB.net.
- AjpdSoft Envío EMail SSL VB.Net.
- AjpdSoft Conexión BD Visual Basic .Net.
- Desarrollar aplicación lector de códigos de barras para Android con App Inventor.
- Metadatos, cómo eliminarlos, cómo consultarlos, peligrosos para la privacidad.
- Insertar evento de Google Calendar con Visual Basic .Net y Google Data API.
- Crear proceso en segundo plano con barra de progreso en Visual Basic .Net VB.Net.
- Instalar Visual Studio 2010 y desarrollar aplicación con acceso a PostgreSQL.
- El control de errores en Visual Basic .Net.
- Acceso a MySQL mediante Visual Basic .Net y ODBC.
- Acceso a Oracle mediante Microsoft Visual Basic, RDO y ODBC.
- Insertar y extraer documentos en una tabla Oracle con Visual Basic 6.
- Cambiar marcadores de Word por valores del formulario de una aplicación.
- Exportar ListView a fichero CSV VB.Net.
- Función para reemplazar una cadena de texto dentro de otra - Visual Basic.
- Funciones para leer y escribir en ficheros INI VB.Net.
- Artículos, manuales y trucos del Proyecto AjpdSoft sobre Microsoft Visual Studio.
- Todos los programas con código fuente en Visual Basic.
- Foro del Proyecto AjpdSoft sobre Visual Basic, Visual C# C Sharp, VB.Net.
- Cómo instalar MySQL Server en Windows XP.
- Cómo instalar MySQL Server 6.0 Alpha en Windows XP.
- Instalar y configurar MySQL Server 5 en Linux Suse 10.
- Cómo instalar MySQL Server en Linux y permitir conexiones remotas.
- Instalar y configurar MySQL Server 5 en Linux Suse 10.
- Manual SQL con ejemplos de sentencias SQL Oracle.
- Exportar una tabla Microsoft Access a MySQL.
- Cómo cargar un fichero de texto plano en una tabla MySQL.
- Definición IDE.
- Definición URL.
- Definición SQL.
- Definición OLE DB.
- Definición ODBC.
Créditos
Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.
7/13/2012
AjpdSoft Indexar Texto PDF C# iTextSharp
Descarga gratuita (freeware) del código fuente (source code) 100% open source, desarrollado con Visual C# C Sharp .Net de la aplicación: AjpdSoft Indexar Texto PDF C# iTextSharp. Este código fuente en C# muestra cómo obtener el texto de los ficheros PDF seleccionados, admite selección de múltiples ficheros. Permite obtener el texto en pantalla y guardarlo en fichero de texto o bien indexar el texto de los ficheros PDF y guardarlo en una base de datos ODBC. Admite cualquier motor de base de datos con soporte para ODBC: PostgreSQL, MySQL, Firebird, SQL Server, Access, SQLite, etc.
7/01/2012
Capturar pantalla screenshot con Visual C#
Tutorial donde explicamos cómo funciona la aplicación open source AjpdSoft Capturar Pantalla C#,
desarrollada con Microsoft Visual C# C Sharp de Microsoft Visual Studio
.Net 2010. Explicamos cómo hacer un screenshot (captura de pantalla),
cómo mostrar la imagen en el formulario de la aplicación y cómo
guardarla con formato JPEG, BMP, PNG, TIFF y WMF.
- Instalación de Microsoft Visual Studio .Net.
- Nuevo proyecto Visual C# para screenshot.
- AjpdSoft Capturar Pantalla C#.
- Código fuente open source completo AjpdSoft Capturar Pantalla C#.
- Artículos relacionados.
- Créditos.
Instalación de Microsoft Visual Studio .Net
Para desarrollar la aplicación que nos permita
capturar la pantalla en una imagen (screenshot) usaremos el lenguaje de
programación Microsoft Visual C# ó Visual C Sharp. Dicho lenguaje de
programación pertenece a la suite de programación (entorno o IDE)
Microsoft Visual Studio .Net. En el siguiente tutorial explicamos cómo
instalar esta suite de desarrollo:
Nuevo proyecto Visual C# para screenshot
Abriremos Visual Studio .Net, pulsaremos en "Archivo" - "Nuevo proyecto":
Seleccionaremos en la parte izquierda "Otros
lenguajes" - "Visual C#", en la parte derecha seleccionaremos
"Aplicación de Windows Form", en "Nombre" introduciremos el nombre del
proyecto, por ejemplo "AjpdSoftCapturarPantalla":
Añadiremos los siguientes componentes al formulario principal de la aplicación, como mostramos en la imagen:
- System.Windows.Forms.Button: añadiremos tres botones para hacer el pantallazo o captura de pantalla (screenshot), para seleccionar el destino donde se guardará el fichero de imagen con la captura de pantalla y el botón de guardar la imagen.
- System.Windows.Forms.PictureBox: añadiremos un PictureBox que será donde mostremos la imagen capturada del pantallazo.
- System.Windows.Forms.ComboBox: añadiremos una lista desplegable que será donde mostremos los formatos de imagen disponibles: JPEG, PNG, TIFF, BMP y WMF.
- System.Windows.Forms.TextBox: añadiremos un cuadro de texto donde el usuario introducirá la unidad, carpeta y nombre del fichero de destino para guardar el pantallazo on screenshot.
- System.Windows.Forms.SaveFileDialog: añadiremos un cuadro de diálogo para selección de unidad, carpeta y nombre de fichero donde guardar la imagen de la captura de pantalla o pantallazo.
A continuación indicamos el código de las partes más importantes de la aplicación AjpdSoft Capturar Pantalla C#:
Los imports que necesitaremos:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
- Botón "Capturar pantalla":
private void btCapturarPantalla_Click(object sender, EventArgs e)
{
if (!System.IO.File.Exists(txtUbicacionCaptura.Text))
{
try
{
//Comprobamos si la ventana está maximizada, si lo está
//la dejamos en Normal para que funcione el hide
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
}
//ocultamos la ventana de la aplicación para que
//no aparezca en la captura de pantalla
this.Hide();
//esperamos unos milisegundos para asegurarnos que
//se ha ocultado la ventana
System.Threading.Thread.Sleep(250);
//obtenemos la resolución de pantalla
Rectangle tamanoEscritorio =
Screen.GetBounds(this.ClientRectangle);
//creamos un Bitmap del tamaño de nuestra pantalla
Bitmap objBitmap = new Bitmap(tamanoEscritorio.Width,
tamanoEscritorio.Height);
//creamos el gráifco en base al Bitmap objBitmap
Graphics objGrafico = Graphics.FromImage(objBitmap);
//transferimos la captura al objeto objGrafico en
//base a las medidas del bitmap
objGrafico.CopyFromScreen(0, 0, 0, 0, objBitmap.Size);
//liberamos el gráfico de memoria
objGrafico.Flush();
//mostramos la captura de memoria a la ventana de la aplicación
imgCaptura.SizeMode = PictureBoxSizeMode.StretchImage;
imgCaptura.Image = objBitmap;
imgCaptura.Visible = true;
/* Si queremos crear el PictureBox en tiempo de ejecución
var imgPictureBox = new PictureBox();
imgPictureBox.Location = new System.Drawing.Point(15, 89);
imgPictureBox.Size = new System.Drawing.Size(609, 332);
imgPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
imgPictureBox.Image = objBitmap;
Controls.Add(imgPictureBox);
imgPictureBox.Visible = true;
*/
}
catch (Exception objError)
{
MessageBox.Show(objError.ToString(), "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
this.Show();
}
}
else
{
MessageBox.Show("Ya existe un fichero de imagen con ese " +
"nombre, seleccione otra ruta o nombre de fichero.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
- Evento "SelectedValueChanged" del lsFormatoImagen (ComboBox) añadiremos el siguiente código:
private void lsFormatoImagen_SelectedValueChanged(object sender,
EventArgs e)
{
//si el usuario cambia el formato de la imagen destino
//y ya hay algo escrito en txtUbicacionCaptura,
//cambiaremos la extensión del fichero por la
//seleccionada en el formato
string ficheroCaptura = "";
ficheroCaptura = txtUbicacionCaptura.Text;
if (ficheroCaptura != "")
{
ficheroCaptura = System.IO.Path.GetDirectoryName(ficheroCaptura) +
System.IO.Path.DirectorySeparatorChar +
System.IO.Path.GetFileNameWithoutExtension(ficheroCaptura) +
"." + lsFormatoImagen.Text.ToLower();
txtUbicacionCaptura.Text = ficheroCaptura;
}
}
- Botón "..." (seleccionar imagen de destino):
private void bSelDestino_Click(object sender, EventArgs e)
{
string formatoImagen = "";
formatoImagen = lsFormatoImagen.Text;
if (formatoImagen != "")
{
dlGuardarImagen.Title = "Selección de carpeta y fichero de " +
"imagen donde se guardará la captura";
dlGuardarImagen.Filter = "Imágenes " + formatoImagen +
" (*." + formatoImagen.ToLower() + ")|*." +
formatoImagen.ToLower() +
"|Todos los ficheros (*.*)|*.*";
dlGuardarImagen.DefaultExt = formatoImagen.ToLower();
dlGuardarImagen.FilterIndex = 1;
if (dlGuardarImagen.ShowDialog() == DialogResult.OK)
{
txtUbicacionCaptura.Text = dlGuardarImagen.FileName;
}
}
else
{
MessageBox.Show("Debe seleccionar el formato para la imagen.",
"Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
lsFormatoImagen.Focus();
}
}
- Botón "Guardar":
private void btGuardar_Click(object sender, EventArgs e)
{
if (imgCaptura.Image != null)
{
string formatoImagen = "";
formatoImagen = lsFormatoImagen.Text;
if (formatoImagen != "")
{
if (txtUbicacionCaptura.Text != "")
{
//guardarmos la imagen en el formato indicado por el usuario
if (System.IO.Directory.Exists(
System.IO.Path.GetDirectoryName(txtUbicacionCaptura.Text)))
{
if (formatoImagen == "PNG")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Png);
}
if (formatoImagen == "BMP")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Bmp);
}
if (formatoImagen == "JPEG")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Jpeg);
}
if (formatoImagen == "TIFF")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Tiff);
}
if (formatoImagen == "WMF")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Wmf);
}
}
else
{
MessageBox.Show("La carpeta de destino de la imagen " +
"capturada debe existir.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
bSelDestino.Focus();
}
}
else
{
MessageBox.Show("Debe indicar una carpeta y nombre de fichero " +
"para guardar la imagen capturada.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
bSelDestino.Focus();
}
}
else
{
MessageBox.Show("Debe seleccionar el formato para la imagen. ",
"Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
lsFormatoImagen.Focus();
}
}
else
{
MessageBox.Show("Debe capturar previamente una imagen.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
btCapturarPantalla.Focus();
}
}
AjpdSoft Capturar Pantalla C#
A continuación mostramos la aplicación AjpdSoft Capturar Pantalla C# funcionando, para capturar la pantalla actual y realizar un pantallazo pulsaremos en "Capturar pantalla":
La aplicación se ocultará y realizará el screenshot o
pantallazo, mostrará la imagen adquirida en la ventana de la
aplicación. Para guardar esta imagen en fichero, en "Guardar imagen"
seleccionaremos el "Formato", pulsaremos en "..." para seleccionar el
destino de la imagen:
Seleccionaremos una carpeta y un nombre para guardar el pantallazo:
Por último pulsaremos en "Guardar" y ya tendremos el
pantallazo o screenshot o captura de pantalla guardado en fichero de
imagen con el formato elegido (JPEG, BMP, PNG, TIFF o WMF):
Código fuente open source completo AjpdSoft Capturar Pantalla C#
A continuación mostramos el listado del código fuente de la aplicación AjpdSoft Capturar Pantalla C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
namespace AjpdSoftCapturaPantalla
{
public partial class formCapturarPantalla : Form
{
public formCapturarPantalla()
{
InitializeComponent();
}
private void btCapturarPantalla_Click(object sender, EventArgs e)
{
if (!System.IO.File.Exists(txtUbicacionCaptura.Text))
{
try
{
//Comprobamos si la ventana está maximizada, si lo está
//la dejamos en Normal para que funcione el hide
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
}
//ocultamos la ventana de la aplicación para que
//no aparezca en la captura de pantalla
this.Hide();
//esperamos unos milisegundos para asegurarnos que
//se ha ocultado la ventana
System.Threading.Thread.Sleep(250);
//obtenemos la resolución de pantalla
Rectangle tamanoEscritorio =
Screen.GetBounds(this.ClientRectangle);
//creamos un Bitmap del tamaño de nuestra pantalla
Bitmap objBitmap = new Bitmap(tamanoEscritorio.Width,
tamanoEscritorio.Height);
//creamos el gráifco en base al Bitmap objBitmap
Graphics objGrafico = Graphics.FromImage(objBitmap);
//transferimos la captura al objeto objGrafico en
//base a las medidas del bitmap
objGrafico.CopyFromScreen(0, 0, 0, 0, objBitmap.Size);
//liberamos el gráfico de memoria
objGrafico.Flush();
//mostramos la captura de memoria a la ventana de la aplicación
imgCaptura.SizeMode = PictureBoxSizeMode.StretchImage;
imgCaptura.Image = objBitmap;
imgCaptura.Visible = true;
/* Si queremos crear el PictureBox en tiempo de ejecución
var imgPictureBox = new PictureBox();
imgPictureBox.Location = new System.Drawing.Point(15, 89);
imgPictureBox.Size = new System.Drawing.Size(609, 332);
imgPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
imgPictureBox.Image = objBitmap;
Controls.Add(imgPictureBox);
imgPictureBox.Visible = true;
*/
}
catch (Exception objError)
{
MessageBox.Show(objError.ToString(), "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
this.Show();
}
}
else
{
MessageBox.Show("Ya existe un fichero de imagen con ese " +
"nombre, seleccione otra ruta o nombre de fichero.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void bSelDestino_Click(object sender, EventArgs e)
{
string formatoImagen = "";
formatoImagen = lsFormatoImagen.Text;
if (formatoImagen != "")
{
dlGuardarImagen.Title = "Selección de carpeta y fichero de " +
"imagen donde se guardará la captura";
dlGuardarImagen.Filter = "Imágenes " + formatoImagen +
" (*." + formatoImagen.ToLower() + ")|*." +
formatoImagen.ToLower() +
"|Todos los ficheros (*.*)|*.*";
dlGuardarImagen.DefaultExt = formatoImagen.ToLower();
dlGuardarImagen.FilterIndex = 1;
if (dlGuardarImagen.ShowDialog() == DialogResult.OK)
{
txtUbicacionCaptura.Text = dlGuardarImagen.FileName;
}
}
else
{
MessageBox.Show("Debe seleccionar el formato para la imagen.",
"Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
lsFormatoImagen.Focus();
}
}
private void btGuardar_Click(object sender, EventArgs e)
{
if (imgCaptura.Image != null)
{
string formatoImagen = "";
formatoImagen = lsFormatoImagen.Text;
if (formatoImagen != "")
{
if (txtUbicacionCaptura.Text != "")
{
//guardarmos la imagen en el formato indicado por el usuario
if (System.IO.Directory.Exists(
System.IO.Path.GetDirectoryName(txtUbicacionCaptura.Text)))
{
if (formatoImagen == "PNG")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Png);
}
if (formatoImagen == "BMP")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Bmp);
}
if (formatoImagen == "JPEG")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Jpeg);
}
if (formatoImagen == "TIFF")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Tiff);
}
if (formatoImagen == "WMF")
{
imgCaptura.Image.Save(txtUbicacionCaptura.Text,
ImageFormat.Wmf);
}
}
else
{
MessageBox.Show("La carpeta de destino de la imagen " +
"capturada debe existir.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
bSelDestino.Focus();
}
}
else
{
MessageBox.Show("Debe indicar una carpeta y nombre de fichero " +
"para guardar la imagen capturada.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
bSelDestino.Focus();
}
}
else
{
MessageBox.Show("Debe seleccionar el formato para la imagen. ",
"Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
lsFormatoImagen.Focus();
}
}
else
{
MessageBox.Show("Debe capturar previamente una imagen.", "Atención",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
btCapturarPantalla.Focus();
}
}
private void linkAjpdSoft_LinkClicked(object sender,
LinkLabelLinkClickedEventArgs e)
{
//abrir navegador por defecto y acceder a la URL www.ajpdsoft.com
System.Diagnostics.Process.Start("http://www.ajpdsoft.com");
}
private void lsFormatoImagen_SelectedValueChanged(object sender,
EventArgs e)
{
//si el usuario cambia el formato de la imagen destino
//y ya hay algo escrito en txtUbicacionCaptura,
//cambiaremos la extensión del fichero por la
//seleccionada en el formato
string ficheroCaptura = "";
ficheroCaptura = txtUbicacionCaptura.Text;
if (ficheroCaptura != "")
{
ficheroCaptura = System.IO.Path.GetDirectoryName(ficheroCaptura) +
System.IO.Path.DirectorySeparatorChar +
System.IO.Path.GetFileNameWithoutExtension(ficheroCaptura) +
"." + lsFormatoImagen.Text.ToLower();
txtUbicacionCaptura.Text = ficheroCaptura;
}
}
}
}
Artículos relacionados
- Código fuente open source AjpdSoft Capturar Pantalla C#
- AjpdSoft CapPan.
- Separar páginas pdf en un pdf por cada página con PDFsharp y Visual C# C Sharp.
- AjpdSoft Separar Páginas PDF código fuente Visual C# .Net.
- Convertir texto a PDF con iTextSharp y Visual Basic .Net VB.Net.
- AjpdSoft Convertir Texto a PDF VB.Net.
- Generar y leer códigos QR Quick Response Barcode con Visual Basic .Net VB.Net.
- Cómo desarrollar una aplicación de servicio en Windows con Visual Basic .Net.
- Estructura del código de barras EAN 13 y ejemplo en Delphi de obtención de datos.
- Metadatos, cómo eliminarlos, cómo consultarlos, peligrosos para la privacidad.
- AjpdSoft Generador de códigos de barras.
- AjpdSoft extraer texto PDF Delphi.
- Desarrollar aplicación lector de códigos de barras para Android con App Inventor.
- AjpdSoft Socket VB.Net.
- AjpdSoft Envío SMS VB.Net.
- AjpdSoft Inventario PCs - Código fuente Delphi.
- Insertar evento de Google Calendar con Visual Basic .Net y Google Data API.
- AjpdSoft Insertar Evento Google Calendar VB.net.
- Crear proceso en segundo plano con barra de progreso en Visual Basic .Net VB.Net.
- Instalar Visual Studio 2010 y desarrollar aplicación con acceso a PostgreSQL.
- El control de errores en Visual Basic .Net.
- Acceso a MySQL mediante Visual Basic .Net y ODBC.
- Acceso a Oracle mediante Microsoft Visual Basic, RDO y ODBC.
- Insertar y extraer documentos en una tabla Oracle con Visual Basic 6.
- Cambiar marcadores de Word por valores del formulario de una aplicación.
- Exportar ListView a fichero CSV VB.Net.
- Función para reemplazar una cadena de texto dentro de otra - Visual Basic.
- Funciones para leer y escribir en ficheros INI VB.Net.
- AjpdSoft Envío EMail SSL VB.Net.
- AjpdSoft Conexión BD Visual Basic .Net.
- Artículos, manuales y trucos del Proyecto AjpdSoft sobre Microsoft Visual Studio.
- Todos los programas con código fuente en Visual Basic.
- Foro del Proyecto AjpdSoft sobre Visual Basic, Visual C# C Sharp, VB.Net.
Créditos
Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.
Suscribirse a:
Entradas (Atom)



























