elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programación / .NET (C#, VB.NET, ASP) / Re: Problema con framework 2.0? en: 11 Enero 2009, 18:29 pm
Hola Gente tengo un grave problema,  he programado una aplicación para windows , que necesito usar en una cantidad masivza de PCs  el problema viene porque lo he programado en  C# con visual studio .NET 2005  y ahora al ejecutarlo en otros ordenadores me da el siguiente error al ejecutarlo:

La aplicación no se ha podido inicializar correctamente ( 0xc0000135). Haga clic en Aceptar para terminar la aplicación.Aceptar.

Estuve mirando por google y encontre que instalando el framework 2.0 no tendria ningun problema para la ejecucion del programa, pero el problema es que no puedo estar dependiendo de el, hay alguna manera de ejecutarlo sin instalar el framework 2.0?

Un saludo y gracias!

Sí, existe un programa llamado Xenocode que lo que hace es juntar el .NET Framework con tu aplicación, lo que ocurre es que aumenta un poco el tamaño de esta.
Aquí hay un tutorial sobre cómo utilizarlo: http://foro.elhacker.net/net/tutorial_como_abrir_tu_aplicacion_net_sin_net_framework_instalado-t222613.0.html.
Salu2
12  Programación / Programación Visual Basic / Re: Windows7 (Beta1) y VB 6.0 en: 11 Enero 2009, 18:06 pm
Lo que deberían hacer es migrar a .NET, son todo mejoras, y sus interfaces gráficas quedan impecables.

Salu2
13  Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda C#, problema con win forms en: 11 Enero 2009, 17:26 pm
Bien, déjame un rato que cree un pequeño código para que te sirva de ejemplo y lo publico :).

Edit:

Tal cómo te prometí, aquí lo tienes. He simplificado la tarea, mediante la creación de una variable pública. Cada formulario tiene un botón y un cuadro de textol. Espero que era esto lo que intentabas hacer

Form1
Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace WindowsFormsApplication1
  5. {
  6.    public partial class Form1 : Form
  7.    {
  8.        public static string Titulo;
  9.  
  10.        public Form1()
  11.        {
  12.            InitializeComponent();
  13.        }
  14.  
  15.        private void button1_Click(object sender, EventArgs e)
  16.        {
  17.            Titulo = textBox1.Text;
  18.            Form2 frmForm2 = new Form2();
  19.            frmForm2.Show();
  20.        }
  21.  
  22.        private void Form1_DoubleClick(object sender, EventArgs e)
  23.        {
  24.            this.Text = Titulo;
  25.        }
  26.    }
  27. }

Form2
Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace WindowsFormsApplication1
  5. {
  6.    public partial class Form2 : Form
  7.    {
  8.        public Form2()
  9.        {
  10.            InitializeComponent();
  11.        }
  12.  
  13.        private void Form2_Load(object sender, EventArgs e)
  14.        {
  15.            this.Text = WindowsFormsApplication1.Form1.Titulo;
  16.        }
  17.  
  18.        private void button1_Click(object sender, EventArgs e)
  19.        {
  20.            WindowsFormsApplication1.Form1.Titulo = textBox1.Text;
  21.            this.Close();
  22.        }
  23.    }
  24. }

Salu2
14  Programación / .NET (C#, VB.NET, ASP) / [C#] cifrar/descifrar en AES en: 11 Enero 2009, 15:26 pm
Bueno, el código está hecho en C# y corre perfectamente bajo VS 2008. Utiliza el famoso algoritmo de cifrado AES.

Namespaces utilizados:

  • System;
  • System.Security.Cryptography;

Argumentos:

  • PlainText: Texto a cifrar.
  • Password: Nuestra contraseña.
  • hashAlgorithm: El algoritmo para generar el hash, puede ser MD5 o SHA1.
  • SaltValue: Puede ser cualquier cadena.
  • InitialVector: Debe ser una cadena de 16 bytes, es decir, 16 caracteres.
  • PasswordIterations: Con uno o dos será suficiente.
  • KeySize: Puede ser cualquiera de estos tres valores: 128, 192 o 256.

Esta función cifra:

Código
  1. public static string Encrypt(string PlainText, string Password, string SaltValue, string hashAlgorithm, int PasswordIterations, string InitialVector, int KeySize)
  2.        {
  3.            try
  4.            {
  5.                byte[] InitialVectorBytes = Encoding.ASCII.GetBytes(InitialVector);
  6.                byte[] saltValueBytes = Encoding.ASCII.GetBytes(SaltValue);
  7.                byte[] plainTextBytes = Encoding.UTF8.GetBytes(PlainText);
  8.  
  9.                PasswordDeriveBytes password = new PasswordDeriveBytes(Password, saltValueBytes, hashAlgorithm, PasswordIterations);
  10.  
  11.                byte[] keyBytes = password.GetBytes(KeySize / 8);
  12.  
  13.                RijndaelManaged symmetricKey = new RijndaelManaged();
  14.  
  15.                symmetricKey.Mode = CipherMode.CBC;
  16.  
  17.                ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes, InitialVectorBytes);
  18.  
  19.                MemoryStream memoryStream = new MemoryStream();
  20.  
  21.                CryptoStream cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write);
  22.  
  23.                cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
  24.  
  25.                cryptoStream.FlushFinalBlock();
  26.  
  27.                byte[] cipherTextBytes = memoryStream.ToArray();
  28.  
  29.                memoryStream.Close();
  30.                cryptoStream.Close();
  31.  
  32.                string cipherText = Convert.ToBase64String(cipherTextBytes);
  33.  
  34.                return cipherText;
  35.            }
  36.            catch
  37.            {
  38.                MessageBox.Show("The typed information is wrong. Please, check it.", "FoS TeaM", MessageBoxButtons.OK, MessageBoxIcon.Stop);
  39.                return null;
  40.            }
  41.        }

Y esta descifra:

Código
  1. public static string Decrypt(string PlainText, string Password, string SaltValue, string HashAlgorithm, int PasswordIterations, string InitialVector, int KeySize)
  2.        {
  3.            try
  4.            {
  5.                byte[] InitialVectorBytes = Encoding.ASCII.GetBytes(InitialVector);
  6.                byte[] saltValueBytes = Encoding.ASCII.GetBytes(SaltValue);
  7.  
  8.                byte[] cipherTextBytes = Convert.FromBase64String(PlainText);
  9.  
  10.                PasswordDeriveBytes password = new PasswordDeriveBytes(Password, saltValueBytes, HashAlgorithm, PasswordIterations);
  11.  
  12.                byte[] keyBytes = password.GetBytes(KeySize / 8);
  13.  
  14.                RijndaelManaged symmetricKey = new RijndaelManaged();
  15.  
  16.                symmetricKey.Mode = CipherMode.CBC;
  17.  
  18.                ICryptoTransform decryptor = symmetricKey.CreateDecryptor(keyBytes, InitialVectorBytes);
  19.  
  20.                MemoryStream memoryStream = new MemoryStream(cipherTextBytes);
  21.  
  22.                CryptoStream cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read);
  23.  
  24.                byte[] plainTextBytes = new byte[cipherTextBytes.Length];
  25.  
  26.                int decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length);
  27.  
  28.                memoryStream.Close();
  29.                cryptoStream.Close();
  30.  
  31.                string plainText = Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount);
  32.  
  33.                return plainText;
  34.            }
  35.            catch
  36.            {
  37.                MessageBox.Show("The typed information is wrong. Please, check it.", "FoS TeaM", MessageBoxButtons.OK, MessageBoxIcon.Stop);
  38.                return null;
  39.            }
  40.        }

Salu2
15  Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda C#, problema con win forms en: 11 Enero 2009, 15:16 pm
¿Has oído hablar del patrón Singleton? Puede qué eso de solución a tu problema ;).

http://es.wikipedia.org/wiki/Singleton

Salu2
16  Programación / .NET (C#, VB.NET, ASP) / Re: [VB] ayuda COMException en: 11 Enero 2009, 14:55 pm
¿Por qué no intentas hacerlo con la ayuda del .NET Framework en vez de usar el ya antiguo control Winsock de VB6?

Salu2
17  Programación / .NET (C#, VB.NET, ASP) / Re: Problemas con sentencia try en un for en: 9 Enero 2009, 18:27 pm
Prueba con ésto:

Código
  1. Module DudaAPP
  2.    Sub Main()
  3.        Dim Verduras() As String = {"Patata", "Pimiento", "Coliflor"}
  4.        Dim Huerto() As String = {"Zona1", "Zona2", "Zona3"}
  5.  
  6.        Try
  7.            For Each Patata As String In Verduras
  8.                For Each Zona As String In Huerto
  9.                    Console.WriteLine("{0} - {1}", Patata, Zona)
  10.                Next
  11.            Next
  12.        Catch ex As Exception
  13.            Console.WriteLine(ex.Message)
  14.        End Try
  15.  
  16.        Console.ReadKey(True)
  17.    End Sub
  18. End Module
  19.  

Si te sale error dime cuál es el mensaje que se mostró para poder ayudarte.

Salu2
18  Programación / .NET (C#, VB.NET, ASP) / Re: [Manual] Buscar archivos con VB en: 9 Enero 2009, 16:56 pm
Buen tutorial, aunque te agradeceria si también haces la correspondiente versión para la versión 6.0  :P

Como observarás, el .NET Framework nos facilita mucha tarea a los programadores de VB que migramos a .NET ;)

Salu2
19  Programación / .NET (C#, VB.NET, ASP) / [Manual] Buscar archivos con VB en: 9 Enero 2009, 16:36 pm
Bien, el bueno de SmartGenius me pidió una pequeña guía para buscar archivos con Visual Basic .NET y aquí os la dejo como regalo de reyes.

Lo primero que vamos a hacer será crear un proyecto del tipo Windows Forms y una interfaz similar a ésta:


Una vez echo esto, empezemos a codear. Lo primero de todo que vamos a escribir es el código del evento Click de nuestro botón para añadir el directorio correcto a buscar.
Código
  1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2. Dim Directorio As New FolderBrowserDialog
  3. If Directorio.ShowDialog = Windows.Forms.DialogResult.OK Then
  4. TextBox3.Text = Directorio.SelectedPath
  5. End If
  6. End Sub
Cómo podéis ver creamos un nuevo control FolderBrowserDialog y preguntamos si el usuario ha pulsado el botón Aceptar en él. Si hace esto, el directorio seleccionado será el contenido del cuadro de texto deseado.

Bien, ahora viene lo realmente interesante. Antes que nada os sugiero que importéis el namespace System.IO:

Código
  1. Imports System.IO

Vayamos al control Click de nuestro botón buscar. En nuestra miniaplicación se podrá buscar tanto por el nombre del fichero tanto por el contenido de éste. Para ello, preguntamos que RadioButton está seleccionado.
Código
  1. If RadioButton1.Checked = True Then
  2. ' Buscar por nombre
  3. Else
  4. ' Buscar por contenido
  5. End If
Empezemos por la segunda opción, la de buscar por contenido. Antes que nada, borramos todos los items de nuestro ListBox por si se encuentran otros resultados de búsquedas anteriores.

Código
  1. ListBox1.Items.Clear()

Por si surge algún error, utilizaremso la sentencia Try...Catch. En caso de que aparezca una excepción se creará un nuevo item en nuestro Listbox con la información del error.
Código
  1. Try
  2. Catch ex As Exception
  3. ListBox1.Items.Add(ex.Message)
  4. End Try
Lo primero que debemos hacer es declarar una variable que contendrá todos los archivos del directorio especificado. Para ello, gracias al método FindInFiles de la clase FileSystem lograremos dicha tarea.
Código
  1. Dim Archivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
  2. Archivos = My.Computer.FileSystem.FindInFiles(TextBox3.Text, TextBox2.Text, True, FileIO.SearchOption.SearchAllSubDirectories)
En los parámetros de este método hemos especificado el directorio, el contenido a buscar, si distingue entre mayúsculas y minúsculas y si buscará en los subdirectorios, respectivamente.

Ahora sólo nos falta recorrer la colección y mostrar los resultados en nuestro Listbox.
Código
  1. For Each Archivo As String In Archivos
  2. ListBox1.Items.Add(Archivo)
  3. Next
El código deberá quedar así:
Código
  1. If RadioButton1.Checked = True Then
  2. ' Buscar por nombre
  3. Else
  4. ' Buscar por contenido
  5. ListBox1.Items.Clear()
  6. Try
  7. Dim Archivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
  8. Archivos = My.Computer.FileSystem.FindInFiles(TextBox3.Text, TextBox2.Text, True, FileIO.SearchOption.SearchAllSubDirectories)
  9.  
  10. For Each Archivo As String In Archivos
  11. ListBox1.Items.Add(Archivo)
  12. Next
  13. Catch ex As Exception
  14. ListBox1.Items.Add(ex.Message)
  15. End Try
  16. End If
Bien, ya sólo nos falta que logre buscar por el nombre del archivo. Para que logre buscar también los subdirectorios del directorio especificado, crearemos un método recursivo, es decir, que se llamará así mismo tantas veces como subdirectorios existan. Tendrá un argumento que será el directorio donde buscará.

Creamos dos variables, una para almacenar el directorio actual y otra para el archivo actual.
A continuación escribimos otro bloque Try..Catch con la misma intención que antes. Esta vez, recorremos todos los elementos de la colección que devuelve el método GetDirectories de la clase Directory pasandole como argumento el directorio deseado. Para no consumir todos los recursos del sistema, utilizaremos el método DoEvents de la clase Application, aunque perfectamente para esta tarea podríamos crear un hilo o hebra. Haríamos un proceso análogo para los archivos del directorio con el método GetFiles de la clase Directory, y esta vez, añadiríamos cada archivo a nuestro ListBox. Al final, debería quedarnos una cosa así:
Código
  1. Private Sub BuscarDirectorio(ByVal sDirectorio As String)
  2. Dim Directorio As String, Archivo As String
  3. Try
  4. For Each Directorio In Directory.GetDirectories(sDirectorio)
  5. Application.DoEvents()
  6. For Each Archivo In Directory.GetFiles(Directorio, TextBox1.Text)
  7. ListBox1.Items.Add(Archivo)
  8. Next
  9. BuscarDirectorio(Directorio)
  10. Next
  11. Catch ex As System.Exception
  12. ListBox1.Items.Add(ex.Message)
  13. End Try
  14. End Sub
Ahora, en el evento click de nuestró botón buscar, debemos llamar al método anterior. Nos quedaría tal que así:
Código
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2. If RadioButton1.Checked = True Then
  3. ListBox1.Items.Clear()
  4. BuscarDirectorio(TextBox3.Text)
  5. Else
  6. ListBox1.Items.Clear()
  7. Try
  8. Dim Archivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
  9. Archivos = My.Computer.FileSystem.FindInFiles(TextBox3.Text, TextBox2.Text, True, FileIO.SearchOption.SearchAllSubDirectories)
  10.  
  11. For Each Archivo As String In Archivos
  12. ListBox1.Items.Add(Archivo)
  13. Next
  14.  
  15. Catch ex As Exception
  16. ListBox1.Items.Add(ex.Message)
  17. End Try
  18. End If
  19. End Sub
Ya para terminar, podemos hacer que en el evento SelectedIndexChanged de nuestro ListBox ocurra lo siguiente:
Código
  1. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
  2. System.Diagnostics.Process.Start(ListBox1.SelectedItem.ToString())
  3. End Sub
Con ello conseguiremos que al dar click sobre un item de la lista se abra dicho archivo.

Lo bueno siempre termina, y esto no es una excepción :P. Espero que les haya gustado, y disfruten del día de hoy.

Salu2
20  Programación / .NET (C#, VB.NET, ASP) / Posters de Visual Studio 2008 en: 9 Enero 2009, 16:34 pm
Todos sabemos que los atajos del teclado son realmente útiles y nuestra productividad aumenta si los utilizamos. Visual Studio 2008 posee un atajo para casi todas las tareas, por lo que puede llegar a ser muy difícil recordar todos. Aquí os dejo unos posters que recogen todos y ademas son bien chulos :o. También uno del FrameWork 3.5 con los tipos y Namespaces más utilizados. Unos posters de lujo :8):.

Póster Visual Basic 2008

Póster Visual C# 2008


Póster Visual C++ 2008


Póster Framework 3.5 

Salu2
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines