Mostrando entradas con la etiqueta Programacion C#. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programacion C#. Mostrar todas las entradas

miércoles, 9 de agosto de 2017

Capturador de Pantalla

Es bien sabido que "Una imagen vale mas que mil palabras " pues aqui les tengo un pequeño programa que hace honor a esa frase. Pues trata de un programa en c# que captura una imagen de tu escritorio y la guarda en la dirección que le digas y en el formato que elijas.

Es bastante simple y de hecho lo uso mucho cuando hago los post para este blog ( me gusta usar mi propio código). aunque es simple usar de repente la tecla print screem y luego pain o word este programa resume todo esos procesos simplificando aún mas nuestro trabajo del día a día, Vale empecemos con el código.

lunes, 31 de julio de 2017

Pomodoro (cronometro) Para developer en c#

En la vida cotidiana realizamos esfuerzos mentales, ya sea estudiando, trabajando o incluso jugando. Dicho esfuerzo se determina como mental, y al igual que cuando entrenamos un músculo (bicep, tricep, abdominales), debe realizarse en periodos de tiempo especifico que suelen llamarse repeticiones.  Sin embargo, para el efuerzo mental no existe tal cosa como "repeticiones" y en sustitucion tenemos un tiempo T.  Francesco Cirillo, en los años 80,  creo un metodo llamado Pomodoro que consistia en realizar ciclos de 45 minutos con un cronometro de cocina con forma de tomate, de alli el nombre, que significa tomate en italiano,  ésto, con el fin de concentrar su esfuerzo mental en una sola y única tarea (estudiar, analizar o calcular), despejando cualquier interrupción y unicamente concentrandose en dicha tarea.

Bueno, basta de conceptos y explicaciones historicas, lo que hoy os he traido es un experimento para ayudarlos a concentrase cuando esten desarrollando. Llevé entonces el mismo concepto de "cronometro" al mundo digital a travez del lenguaje C#. El mismo, se basa en dos controles Timers, uno que lleva el tiempo de pomodoro y otro que realiza seguimiento al timer principal para mostrar en pantalla el tiempo que esta transcurriendo. Adicional a ello tambien usé un NotifyIcon para esconder el programa y apollandome en la clase WMPLib de windows, ejecutar sonidos en mp3; y para este caso, usé sonidos bien frikis, así que espero difruten el proyecto.

Explicacion del Proyecto:

Primero explicaremos como añadir la libreria WMPLib a nuestro proyecto para ejecutar los sonidos:

Para ello, vamos a importar una referencia llamada Windows Media Player

Aqui la podemos constatar 

Luego la llamamos para su uso en la clase 



Ahora vamos a agregar los sonidos que queremos ejecutar. Esto es muy simple, vamos a nuestra solución, pulsamos click derecho, agregar-> elemento existente y en la ventana ponemos en los filtros todos los archivos, buscando los que queremos para este proyecto y ya los tiene agregados 


Y ahora creamos el metodo " ejecutar sonido " al cual llamaremos y con una sobrecarga  definiremos qué sonidos queremos ejecutar, usando el metodo .play()


Ahora si, vamos al main de este proyecto. Agregando dos controles Timers al form, uno llamado Pomodoro y otro Verificador. (además de un NotifyIcon y un ToolTip, que sería bueno que más adelante explique como funcionan,... pero será para otra publicación )



Adicional, agregaremos un control numericupdown para así tomar del usuario el tiempo que tendrá el timer; recordemos que el timer usa el tiempo en milisegundos.

Tenemos entonces, el metodo Inicio y el metodo Pausar

Iniciar: con este metodo, básicamente, invocamos los metodos Start o Stop, dependiendo de si queremos detener o iniciar el timer del pomodoro, tomando la cantidad de tiempo ingresada por el usuario en el control numerico y lo multiplicandolo por 60, luego por mil para obtener el tiempo en milisegundos 



Éste metodo Pasuar me dio pelea pero basicamente era por que fui terco queriendo crear un algoritmo que me diera el tiempo que resta del tiempo original, así que me fume un porro digital y salio esto:



 Y basicamente esta fue la solución; un metodo que le agrega al objeto tiempo fin  (que será el tiempo de ahora, más el tiempo del pomodoro)


Por último, tenemos este metodo en el que, cuando el timer Verificador entra en ciclo muestra al usuario cuánto tiempo resta. El tiempo de ciclo de este timer es menos de un segundo para así mostrar lo más rapido posible el tiempo actualizado



En fin!, este es un proyecto muy cortico y cool que hice hace ya unas semanas, pero no tenía tiempo, jejeje; pronto subiré otro sobre captura de pantalla, un reproductor de sonido en c#, un ejemplo del uso de drag and drop también en c# y a ver si me digno a subir unos cuanto proyectos orientados a web en php; pero eso será para otra publicación. Hasta entonces, aquí abajo les dejo el link para que se descarguen el ejemplo y que el codigo este con ustedes.... "y con su compilador".


Descarga del Proyecto:








jueves, 21 de mayo de 2015

Programacion C# manejo de datos basicos I

Introducción


En este post veremos el manejo de los datos string y convenciones de datos a diferente como int o decimal desde string. considero que este conocimiento debe quedar bien fundamentado para poder seguir en este curso de C# pues conforme avanzamos en el, no es necesario recordar o explicar de nuevo elemento anteriormente aclarados para no perder ni tiempo ni esfuerzo.

Desarrollo



Concatenar:
 permite unir dos cadenas de string en una sola el concepto es que si sumamos la palabra "ana" mas "maria" terminaría asi "ana maria" en C# y la mayoría de los lenguajes concatenar tiene la misma lógica entonces seria asi

string a = "ana";
string b = "maria ";
string c = a+b;
\\c seria "ana maria"


SubString:
Recorre la cadena de string de un punto x a un punto y menor a numero de caracteres en la cadena
para explicar esto supongamos que tenemos la palabra "juana de arco" si queremos sacar un fragmento de la cadena usaríamos el método substring y en el cual la primera sobrecarga de tipo entero indicamos desde que posición en la cadena empieza a tomar y la segunda sobrecarga cuanto caracteres se tomaran
string cadena="juan de arco";
string sub_cadena=null;
sub_cadena=cadena.SubString(8,4);
\\ sub_cadena seria igual (arco)



Remplase:
como su nombre lo dice remplaza un carácter o una serie de caracteres en la cadena por otra

Trim:
elimina por completo determinado carácter por defecto siempre sera el carácter black space o espacion en blanco

Ejemplo

No hay ejemplo

Ejercicio


Desarrolle un programa similar al ejercicio explicado usando cadenas string int y bool


referencias



lunes, 11 de mayo de 2015

Programacion C# actualizacion de datos en MS Access

Introduccion

Este post te mostrara como actualiza datos en una tabla de access , para este post se actualizaran solo dos campos por fines educativos pero pueden actualizarse la totalidad de los campos

Desarrollo


Esta vez empezaremos en el form pues primero agregaremos un boton y le colocaremos como text  "actualizar datos"

 segundo: iremos a los eventos de data grid view y le agregaremos el eventor double click



dentro del eventro dobleclick del dgv colocaremos lo siguiente


esto nos permitirá mostrar los datos de los campos de la linea seleccionada dentro en su correlativo textbox asignado para cada campo

Pasamos a la clase


en ella creamos el metodo actualizar datos que resivira tres sobrecargas nombre,apellido y cedula . dos de ellos nos seran datos que se modificara en el la tabla el ultimo nos servirá para filtrar los registros 


Veamos la sentencia Update


la sentencia update nos permite actualizar los campos del o los registro en determinada tabla,

en la definición del update indicamos los campos que actualizaremos y de inmediato los valores que se le asignara asi , por ultimo el o los registro que serán afectados usando la clausura where como filtro

ejemplo: UPDATE tabla SET columna1=valor1,columna2=valor2 WHERE columna=valor;


Nota:¡los valores para cada campo estan entre comillas simples!


lo siguiente que hacemos es ejecutar la sentencia como lo hemos hecho antes



por ultimo dentro del boton que actualizara  en su evento click llamamos a la clase y su metodo actualizar pasandole las sobrecargas nesesarias 



  

Ejemplos

 Buscamos el registro que queremos modificar en el datagridview
Alteramos los datos y ejecutamos




nos informa que fueron registrado con exito

Refrescamos la pantalla y apreciamos que fueron actualizados con exito


Descargar Ejercicio





Programacion C# Borrado datos en MS Access

Introducción 


En este post veremos como borrar los registro de una base de datos en access usando c# y sentencias sql

Desarrollo

para no perder el trabajo usamos directamente el proyecto anterior

Entramos de una en la clase del proyecto anterior y  Creamos un método para la clase clase_conexion_sql_access llamado borrar_estudiante_seleccionado y resivira una sobrecarga tipo string cedula 
para saber que cedula de que estudiante borraremos.



la sentencia delete de sql nos permite borrar un registro  existen dos forma de crear esta sentencia

un delete que generico sin clausura where que borrara todos los datos de la tabla objetivo

o delete con clausura where que borrara los registro con los que se haga consicidencia entre campo y valor para explicar mejor esto se debe entender que un registro de base de datos tiene x cantidad de campos.  asi que cuando queremos borrar un registro de un alumno cuya cedula sea x  colocamos el where  y decimos que campos sera igual a x entre comillas simple

ejemplo (delete from tabla Where Campo= 'x')

Asi indicamos al motor de bd que solo borre el o los registro en los cuales el campo sea igual al valor asignado por el usuario. en este caso el campo es cedula y el valor es pasado dado por el metodo en su sobrecarga, la cual concatenamos para tener toda la sentencia armada.




Una vez tengamos al sentencia lista se ejecuta igual que en objetivo anterior Agregar datos a ms access. pues creamos un  un OleDbCommand y le asignamos sentencia y conexion , por ultimo  ejecutamos dentro de un hilo abierto y luego cerramos el hilos. para finalizar retornamos true para indicar que se cumplió con el objetivo


 agregamos un boton y le ponemos el texto de "borrar estudiante seleccionado" al form 




Ahora regresamos al boto de borrado y dentro de su evento click colocamos un bloque try/catch


 Dentro del bloque try.
Para poder saber que cedula tenemos del la linea selecionada por el usuario en el datagridview usamos la propiedad SelectedRows que nos permite recorrer el arreglo de linieas selecionadas por el usuario, indicamos la 0 pues es la primera por el usuario , luego la celda de esa linea por nombre que en este caso sea la " cedula" y su valor en string




llamamos a la instancia de la clase y su metodo borrar estudiante y le damos al sobrecarga cedula



podemos rescatar o no el retorno de este metodo para este ejercicio no se realizo esa tarea



por ultimo indicamos al usuario que se borro el registro con exito


Ejemplo

Seleccionamos el registro dentro del data grid view

borramos y nos informa 


refrescamos la pantalla , cargamos los datos de del datagridview y percatamos que el registro ya no se encuentra

lunes, 4 de mayo de 2015

Programacion C# Ingresar Datos en MS Access

Introduccion


para este post veremos como conectar agregar datos al archivos access de ms desde c# usando la sentencia de sql insert into, 

Explicacion

Primero que nada ampliamos el diseño del form basándonos en el anterior proyecto



Agregamos un control GroupBob que contenga  6 Text Box y un boton





ahora pasamos a la clase clase_conexion_sql_access y agregaos un metodo se llamara ingresar a la base de datos el mismo recivira 7 parametros esos siete parametros son los mismo 7 campo que contiene la tabla estudiante_1 de la base de datos


declaramos un objeto tipo string que contiene la sentencia  la sentencia de sql insert  nos permite  ingresar datos usando sql  este metodo se llama inyeccion sql pues la sentencia tiene una estructura y a su vez los datos que seran ingresada a la tabla objetivo para dividir la sentencia y poder entenderla debemos apreciarla una vez armada
         



   insert llama al al metodo en el controlador sql para ingresar la data into table especifica la tabla que sera
  contenedora de los nuevos datos, donde aparece los primeros parentecis  hace llamado a los campos que seran agregados ojo si el campo no tiene valor por defecto   y es campo notnull ( no nulo) dara error si no es llenado con datos al momento de ingresar datos a la tabla entoces nombramos los campos y en value los datos en el mismo orden que en la seccion anterior  pues en ese orden sera ingresado
a la tabla. los datos deben esta contenido en comillas simples (') o comillas dobles (")  el mismo orden que tiene  la seccion de llamado de campos la tiene la seccion value   el ejemplo de la sentencia seria asi 


insert into estudiante_1 (cedula,nombre,apellido,numero,correo,edad,carrera) value ('20','nova','sanchez','04165555555','kopacanova47@gmail.com','24','computacion')


declaramos nuestro objeto oledbConnection que nos permite conectar con la base de datos y le asignamos la sentencia de conexion


 creamos el objeto comando de la clase OleDbCommand que nos permite ejecutar sentencias de alteracion a base de datos  esta clase requiere dos parametros al memento de ser instanciada que son  la sentencias y el objeto OleDbConnection que en este caso es  conn


el objeto de la clase  OleDbCommand  nos permite ejecutar sentencias de alteracion a base de datos  esta clase requiere dos parametros al memento de ser instanciada que son  la sentencias y el objeto OleDbConnection que en este caso es  conn


especificamos que el tipo de comando que vamos a ejecutar sera tipo texto   



Procedemos a ejecutar la seccionde abrir la conexion ejecutar la sentencia y cerrar la conexión en un bloque try


al final retornamos un true pues nuestro metodo es tipo bool

Pasamos al evento click del boton

en el llamamos a la clase y su metodo pasamos la cantidad de parametros adecuado ( el ultimo que es carrera solo pasamos la propiedad text del control combobox) y avisamos al usuario que se a completado con exito el almacenamiento de los campos



al final del bloque try levantamos el evento del boton 3 para poder ver los elementos que fueron agregados a la tabla

al final queda asi


ingreso los datos y me avisa

muestro en pantalla la grilla refrescada con los nuevos datos


Ejemplo

Ejercicio

Este ejemplo solo modifica sobre la tabla estudiantes, pero puede basarse en los conocimientos para modificar sobre la tabla carreras.

domingo, 19 de abril de 2015

Programacion C# Rescatando Datos de MS Access

Programación C# Rescatando Datos de MS Access 



Lo que haremos aqui es rescatar datos que se encuentran contenidos dentro de una base de datos access y visualizarlos dentro del programa. Antes que nada debemos entrar a la base de datos access e ingresar algunos datos  para poder rescatarlos después con usando el programa


en la tabla de carreras ingresaremos  id  y nombre de carreras en este caso usare las del instituto


Y en la tabla de  Estudiante introduciré algunos ejemplos a la asar de mi imaginación como prueba



Desarrollo

En nuestro proyecto que podria ser el anterior ( conectar a una base de datos access) 
añadiremos un control datagridview y un control combobox.




En la clase donde se realizara la conexion se agregara un metodo en este caso se llama Traer_datos_de_acess_estudiantes. este metodo se encarga de devolver el resultado de una sentencia sql Select ejecutada en la base de datos.


El objeto datatable nos permite almacenar elemento en forma de tabla con lineas y columnas  esto es lo mas similar a un arreglo matris pero con nombre de columnas y con indices en la filas. por otro lado es un objeto vacio que se adapta al diceño de cualquier resultado de una transaccional de base de datos.




Estudiaemos un poco lo que es la sentencia sql select:
select es un comando sql de base de datos que nos permite seleccionar ( valga la redundancia) los campor de determinada tabla para ello después de SELECT se coloca los nombre de los campos, en este caso * significa todo los campos de esa tabla , si llamaremos a ciertos y determinados campos entoces los separaríamos por comas cada un de los llamado campos. Luego la palabra from nos indica en que tabla se ejecutara es decir  seguida del nombre de la tabla la forma correcta es asi :

Select  [campo1] ,[campo2], [campo3 ] From [nombre de la tabla]

A continuacion este ejemplo seria un objeto string que contiene la sentencia sql select 

la clase OleDbDataAdapter:
Representa un conjunto de comandos de datos y una conexión de base de datos que se utilizan para rellenar DataSet y actualizar el origen de datos( base de datos) de tipo OleDB 

A esta clase se le instancia y se le especifica dos sobre cargas: le primera el objeto  sentencia de base de datos en nuestro caso un select y la segunda la conexión o sentencia de coneccion a la base de datos 


el metodo FILL ejecuta la sentencia de base de datos en el origen de datos especificado y captura el resultado, este es asignado directamente en un objeto datatset o datatable que es especificado como sobrecarga en el metodo.


para ello antes de ejecutar el llamado al metodo fill()  se debe abrir la coneccion a base de datos con el metodo open() del objeto coneccion ( conn ). Al finalizar el el bloque TRY  se cierra para que el hilo al origen de datos no quede abierto y se hace buen uso de los recursos y técnicas de programación.



igual haremos con el tabla de carrear apara este ejemplo varia solamente en que la sentencia llama resultados de esa tabla y no la de estudiantes 



dentro del boton  del formulario que trae los los resultado declaramos el evento click 
el esquema es el siguiente



Creamos dos datatables uno para estudiantes que alimentara el datagridview y otro el de carreras que alimentara el combobox



primero informamos que estamos buscando los datos al usuario
luego  con Application.doeventas() actualizamos todo lo referente a diceño y cambio de las propiedades de los controles.

A cada una de los objetos  datatables que creamos le asignamos el resultado del metodo que le corresponde  de la clase de conexión.





Para cargar los datos al DataGridView o grilla  usamos la propiedad DataSouse que sera el objeto Dt_estudiantes, ademas le especificamos que sea la vista por defecto que traer la tabla  ( o vista por defecto de los resultados del origen de datos)  





Al combobox le especificamos que la fuente de los datos sera el objeto datatable Dt_carreras, Y le especificamos que el miembro a mostrar ( digase el texto que se mostrara en la lista) sera la columna carrera de dicha fuente . Asi mismo se especifica el valor del miembro ( el valor  real del item seleccionado en el lista) con el nombre de la columna





Y el resultado es el sigueinte una Grilla con los datos de la tabla estudiantes y un ComboBox con los datos de la tabla Carreras.




Ejemplo



Referencias


programacion-c-conexion-con-m-accesss


NestJs Error on SecretKey for JWToken

  Imagine this you are coding happy, configuring your module has   auth.module.ts   using on your register the classic call to get env value...