Publicado en tttony.blogspot.com
Sunday, 28 November 2010
BlueScreenView lector de archivos .dmp
Me he encontrado con esta utilidad llamada BlueScreenView, que la considero primordial para leer los archivos .dmp que se crean cuando hay una pantalla azul ya sea de Windows XP / Wondows Vista / Windows 7 (32 o 64bits)
Descargar BlueScreenView (pagina oficial) y ademas es portable
Publicado en tttony.blogspot.com
Publicado en tttony.blogspot.com
Monday, 23 August 2010
Convertir codigo de C# a VB.NET y de VB.NET a C#
Existe un utilidad en la web del conocido elGuille que te ayuda a convertir tu codigo de C# a VB.NET y viceversa
Aqui lo puedes encontrar, te bajas el ejecutable y luego te bajas las dos librerias(no se porque no coloco todo junto)
La utilidad no es 100% fiable, todavia le falta por pulir muchas cosas, yo lo uso para convertir los codigos de C# a VB.NET y tiene muchos errores, mas que todo cuando hay comentarios /* ESTE ES UN COMENTARIO EN C# */ que no los parsea bien
Tambien puedes usarlo via web: C# a VB.NET y de VB.NET a C#
Otra buena utilidad online para convertir codigo esta aqui
ACTUALIZACION: 09/08/2011
Me he encontrado una aplicacion online mucho mejor, ya que permite subir un archivo o varios archivos .zip al servidor el cual contenga los archivos .vb para VB.NET o .cs para C# que quieras convertir
http://converter.telerik.com/Default.aspx
Publicado en tttony.blogspot.com
Aqui lo puedes encontrar, te bajas el ejecutable y luego te bajas las dos librerias(no se porque no coloco todo junto)
La utilidad no es 100% fiable, todavia le falta por pulir muchas cosas, yo lo uso para convertir los codigos de C# a VB.NET y tiene muchos errores, mas que todo cuando hay comentarios /* ESTE ES UN COMENTARIO EN C# */ que no los parsea bien
Tambien puedes usarlo via web: C# a VB.NET y de VB.NET a C#
Otra buena utilidad online para convertir codigo esta aqui
ACTUALIZACION: 09/08/2011
Me he encontrado una aplicacion online mucho mejor, ya que permite subir un archivo o varios archivos .zip al servidor el cual contenga los archivos .vb para VB.NET o .cs para C# que quieras convertir
http://converter.telerik.com/Default.aspx
Publicado en tttony.blogspot.com
Sunday, 22 August 2010
Encriptar contraseñas con MD5 en C# y VB.NET (Obsoleto)
ADVERTENCIA!!! la encriptacion con la funcion md5() es insegura, es mejor usar la encriptacion BCryptPara encriptar contraseñas en tu base de datos lo mas comun es usar la ecriptacion MD5
Codigo C#:
public string GetMD5Hash(string input)
{
MD5CryptoServiceProvider x = new MD5CryptoServiceProvider();
byte[] bs = Encoding.UTF8.GetBytes(input);
bs = x.ComputeHash(bs);
StringBuilder s = new StringBuilder();
foreach (byte b in bs)
{
s.Append(b.ToString("x2").ToLower());
}
string password = s.ToString();
return password;
}Codigo VB.NET:
Public Function GetMD5Hash(input As String) As String
Dim x As New MD5CryptoServiceProvider()
Byte() bs = Encoding.UTF8.GetBytes(input)
bs = x.ComputeHash(bs)
Dim s As New StringBuilder()
For Each b As Byte in bs
s.Append(b.ToString("x2").ToLower())
Next
Dim password As String = s.ToString()
Return password
End FunctionPublicado en tttony.blogspot.com
Sistema de login en C# con Access 2007
He mejorado un poco el sistema y ademas lo puedes descargar como archivo de proyecto para VS2010
Sistema de login
Es facil de usar solo tienes que configurarlo dependiendo de como tengas la base de datos de los usuarios
La contraseña de la base de datos login.accdb es: test
Ejecuta el proyecto pero modo Debug ya que la base de datos login.accdb esta en el directorio Debug e introduce estos datos:
El codigo esta documentado
ACTUALIZADO 11/11/12
Publicado en tttony.blogspot.com
Es facil de usar solo tienes que configurarlo dependiendo de como tengas la base de datos de los usuarios
NUEVO: agregada opcion de encriptacion de contraseña con Bcrypt
La contraseña de la base de datos login.accdb es: test
Ejecuta el proyecto pero modo Debug ya que la base de datos login.accdb esta en el directorio Debug e introduce estos datos:
Usuario: prueba
Contraseña: 5555
El codigo esta documentado
ACTUALIZADO 11/11/12
Publicado en tttony.blogspot.com
Manejar errores en C#
Los errores en las aplicaciones son un dolor de cabeza, no sirve de mucho usar:
Es mejor hacer un log, osea escribir en un archivo el error lanzado, en internet me encontre con este
Cada vez que haya una excepcion tienes la opcion de guardar el error en archivo propio .log o al archivo log del sistema
Fuente: http://www.codeproject.com/KB/dotnet/logger.aspx
Publicado en tttony.blogspot.com
try
{
// codigo aqui
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
Es mejor hacer un log, osea escribir en un archivo el error lanzado, en internet me encontre con este
Cada vez que haya una excepcion tienes la opcion de guardar el error en archivo propio .log o al archivo log del sistema
try
{
// codigo aqui
}
catch(Exception ex)
{
if (!ErrorLog.ErrorRoutine(false, ex))
MessageBox.Show("No es posible escribir en el archivo de error");
}
Fuente: http://www.codeproject.com/KB/dotnet/logger.aspx
Publicado en tttony.blogspot.com
Encriptar/Decriptar cadenas con Base64 en C#
Me he encontrado un codigo para encriptar y decriptar cadenas con Base64:
Creas un valor de configuracion llamado SecurityKey en tu proyecto y le asignas un valor aleatorio
Fuente: http://www.codeproject.com/KB/cs/Cryptography.aspx
Publicado en tttony.blogspot.com
static class EncryptClass
{
// http://www.codeproject.com/KB/cs/Cryptography.aspx
///
/// Encrypt a string using dual encryption method. Return a encrypted cipher Text
///
/// string to be encrypted
/// use hashing? send to for extra secirity
///
public static string Encrypt(string toEncrypt, bool useHashing)
{
byte[] keyArray;
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
string key = Properties.Settings.Default.SecurityKey; //<-- crealo en tu configuracion
if (useHashing)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
hashmd5.Clear();
}
else
keyArray = UTF8Encoding.UTF8.GetBytes(key);
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = keyArray;
tdes.Mode = CipherMode.ECB;
tdes.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tdes.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
tdes.Clear();
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
///
/// DeCrypt a string using dual encryption method. Return a DeCrypted clear string
///
/// encrypted string
/// Did you use hashing to encrypt this data? pass true is yes
///
public static string Decrypt(string cipherString, bool useHashing)
{
byte[] keyArray;
byte[] toEncryptArray = {0};
try
{
/*
* La longitud de cadena enritptada con Hashing es de 24
* si es menor de 24 lanza una excepcion, asi que hay que pasar de ella
*/
toEncryptArray = Convert.FromBase64String(cipherString);
}
catch (Exception)
{
return null;
}
string key = Properties.Settings.Default.SecurityKey;
if (useHashing)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
hashmd5.Clear();
}
else
keyArray = UTF8Encoding.UTF8.GetBytes(key);
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = keyArray;
tdes.Mode = CipherMode.ECB;
tdes.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tdes.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
tdes.Clear();
return UTF8Encoding.UTF8.GetString(resultArray);
}
}
Creas un valor de configuracion llamado SecurityKey en tu proyecto y le asignas un valor aleatorio
Fuente: http://www.codeproject.com/KB/cs/Cryptography.aspx
Publicado en tttony.blogspot.com
Saturday, 21 August 2010
Guardar tamaño de las columnas de un DataGridView en C#
La terea es sencilla, guardar el tamaño de las columnas de un DataGridView
Primero creas en tu configuracion un valor llamado por ej. DataGridViewColumnSize con el tipo System.Collections.Specialized.StringCollection
En el evento FormLoad despues de haber cargado tus datos en el DataGridView coloca este codigo:
Y en el evento FormClosing del formulario coloca esto:
Cuando se cierra el formulario se guarda el tamaño y propiedades de las columnas
Fuente: http://www.codeproject.com
Publicado en tttony.blogspot.com
Primero creas en tu configuracion un valor llamado por ej. DataGridViewColumnSize con el tipo System.Collections.Specialized.StringCollection
En el evento FormLoad despues de haber cargado tus datos en el DataGridView coloca este codigo:
/* * Creado por tttony 2010 * http://tttony.blogspot.com/ * * POR FAVOR NO BORRES ESTE COMENTARIO */
// Primera vez
if (Properties.Settings.Default.DataGridViewColumnSize == null)
{
// como es primera vez que inicia entonces colocar todas
// las columnas con el mismo tamaño
colWidth = (dgvLastServices.Width / dgvLastServices.Columns.Count) - (dgvLastServices.Columns.Count);
foreach (DataGridViewColumn col in dgvLastServices.Columns)
{
col.Width = colWidth;
}
}
else
{
StringCollection cols = Properties.Settings.Default.DataGridViewColumnSize;
string[] colsArray = new string[cols.Count];
cols.CopyTo(colsArray, 0);
Array.Sort(colsArray);
for (int i = 0; i < colsArray.Length; ++i)
{
string[] a = colsArray[i].Split(',');
int index = int.Parse(a[3]);
dataGridView1.Columns[index].DisplayIndex = Int16.Parse(a[0]);
dataGridView1.Columns[index].Width = Int16.Parse(a[1]);
dataGridView1.Columns[index].Visible = bool.Parse(a[2]);
}
}
Y en el evento FormClosing del formulario coloca esto:
/* * Creado por tttony 2010 * http://tttony.blogspot.com/ * * POR FAVOR NO BORRES ESTE COMENTARIO */
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
StringCollection stringCollection = new StringCollection();
int i = 0;
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
stringCollection.Add(string.Format(
"{0},{1},{2},{3}",
column.DisplayIndex.ToString("D2"), // Column order fix
column.Width,
column.Visible,
i++));
}
Properties.Settings.Default.DataGridViewColumnSize = stringCollection;
Properties.Settings.Default.Save();
}
Cuando se cierra el formulario se guarda el tamaño y propiedades de las columnas
Fuente: http://www.codeproject.com
Publicado en tttony.blogspot.com
Subscribe to:
Posts (Atom)
