Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Meta

#471
Buenos días:

Tengo claro lo que quiero. Saber la MAC de su tarjeta de red,saber que idioma usa el Windows, unidad de disco duro y particiones. Quiero hacerle como si estuviera haciendo un tree en cmd y guardar esos datos en un archivo de texto, eso si, lo pasaréa binario para que no lo lean.

Saber MAC y guardarlo en un archivo. (Lo de encriptarlo o no es otro cantar).
Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Net.NetworkInformation; // No olvidar.

namespace Leer_MAC
{
   class Program
   {
       static void Main(string[] args)
       {
           Console.Title = "En busca del MAC";

           string Nombre_HostName = null;
           string Nombre_Dominio = null;
           string MAC = null;

           IPGlobalProperties Propiedades_PC = IPGlobalProperties.GetIPGlobalProperties();
           NetworkInterface[] Interfaz_red = NetworkInterface.GetAllNetworkInterfaces();
           Console.WriteLine("Información de interfaz para {0}.{1}     ",
                   Propiedades_PC.HostName, Propiedades_PC.DomainName);
           if ((Interfaz_red == null) || (Interfaz_red.Length < 1))
           {
               Console.WriteLine("  No hay interfaces de red encontrados.");
               return;
           }

           Console.WriteLine("  Número de interfaces .................... : {0}", Interfaz_red.Length);
           foreach (NetworkInterface Adaptador in Interfaz_red)
           {
               IPInterfaceProperties Propiedades = Adaptador.GetIPProperties(); //  .GetIPInterfaceProperties();
               Console.WriteLine();
               Console.WriteLine(Adaptador.Description);
               Console.WriteLine(String.Empty.PadLeft(Adaptador.Description.Length, '='));
               Console.WriteLine("  Tipo interfaz ........................... : {0}", Adaptador.NetworkInterfaceType);
               Console.Write("  Dirección física ........................ : ");
               PhysicalAddress Direccion = Adaptador.GetPhysicalAddress();
               byte[] bytes = Direccion.GetAddressBytes();
               // Variable que tendra la dirección visible.
               string direccion_MAC = string.Empty;
               // Recorrer todos los bytes de la dirección.
               for (int i = 0; i < bytes.Length; i++)
               {
                   // Muestra la dirección física en hexadecimal.
                   direccion_MAC += bytes[i].ToString("X2");
                   Console.Write("{0}", bytes[i].ToString("X2"));
                   // Inserte un guión después de cada bocado, a menos que estemos al final de la dirección.
                   if (i != bytes.Length - 1)
                   {
                       // Agregar un separador, por formato.
                       direccion_MAC += "-";
                       Console.Write("-");
                   }
                   MAC = direccion_MAC;
               }
               Console.WriteLine();
           }

           // Guarda el nombre del hostname en la variable Nombre_HostName.
           Nombre_HostName = Propiedades_PC.HostName;

           // Guarda el nombre del dominio si lo tiene.
           Nombre_Dominio = Propiedades_PC.DomainName;


           // Guarda la MAC recibida con sus - en la varible MAC.
           //MAC = direccion_MAC;

           Console.WriteLine();
           Console.WriteLine(@"Nombre del HostName: {0}", Nombre_HostName);
           Console.WriteLine(@"Nombre del domninio: {0}", Nombre_Dominio);
           Console.WriteLine(@"MAC es: {0}", MAC);
           Console.ReadKey(); // Pulsa cualquier tecla y sale.
       }
   }
}


Más simplificado y guardar en un .txt y en un .bin en C#:
Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Net.NetworkInformation; // No olvidar.
using System.IO;

namespace Leer_MAC_2
{
   class Program
   {
       static void Main(string[] args)
       {
           Console.Title = "Leer MAC 2";
           var macAddr =
   (
       from nic in NetworkInterface.GetAllNetworkInterfaces()
       select nic.GetPhysicalAddress().ToString()
   ).ToArray();

           // Para escribir datos en un archivo.
           StreamWriter Texto = new StreamWriter("Archivo.txt");

           FileStream Archivo = new FileStream("Archivo_bin.txt", FileMode.Append);
           BinaryWriter Binario = new BinaryWriter(Archivo); // Escribe en bibario.

           Console.WriteLine("numero de direcciones " + macAddr.Count());

           foreach (var address in macAddr)
           {
               Texto.WriteLine(address);
               Binario.Write(address);
               Console.WriteLine(address);
           }

           Texto.Close(); // Cerrar archivo.
           Archivo.Close(); // Cierra archivo binario.
           Console.ReadKey(); // Pulse cualquier tecla para salir.
       }
   }
}


También saber que dispositivos tiene conectado en red, otros ordenadores, impresoras, todos los datos posibles de las impresotas que tenga en red o por USB marca y modelo.

Seguiré ampliando cosas. ;)
#472
Hola de nuevo:

Urgando en mi grupo de amigos con esto.
Código (csharp) [Seleccionar]
    for (int i = 0; i < rawData.Length; i++)
    {
        rawData[i] = (byte)(rawData[i] ^ 10);
    }


En el cual estoy agradecido porque funciona de maravilla. Si hago un programa para cifrar de C# una foto, usando el mismo efecto puede desemcriptarlo.


  • Hago tres programas de C#.
  • Programa 1 de C# para cifrar cualquier archivo, es este caso una imagen.
  • Meto la escriptación en el .hex de Arduino ya explicado atrás.
  • Programa 2 de C# capturo los datos de Arduino por el puerto serie/USB.
  • Programa 3 de C# lo desemcripta.

Cuidado una cosa, al menos no he caido antes y lo comento por aquí mismo. ;)
Si cifra una imagen con el programa 1 de C#, lo cifra, si lo vuelve hacer, se descompila y se recupera la imagen. MEnudo fallo y no me di cuenta.
#473
Hola:

Libros tienes una guía, internet muchos ejemplosy documentación.

Los programadores de Java son los más "tristes" y los de C++ los más "viejos"

Escoja el que escojas, prueba con uno.

Saludos.
#474

Imagen corregida respecto a las reglas del foro
Hola:

Como curiosidad, quiero saber si con C# se puede programar un pequeño programón que recoja información de un PC, quiero hacer una prueba con otro PC que tengo.

Por ejemplo, saber la MAC de la tarjeta de red de una placa de un PC, como es único, me parece una información importante. Luego se guarda la información en un archivo txt bien legible, ya se hará técnicas de cifrado.

Si quieres información de alguien, ese alguien ejecuta tu aplicación y recopila información.

Para que tengan una idea, a parte de recoger la MAC, quiero saber que unidades de disco duro tiene instalado en su PC, como se llama su etiqueta, capacidad de disco duro, y el árbol de todos los archivos que tiene, en el txt se guarda nombre de las carpetas, subcarpetas y archivos con extensión completas. También que marca y cantidad de RAM que tiene instalada.

Tengo la idea de hacer una apliación que se guarda en inicio o servivio, que analiza todo del PC. Ya en la casa  cuando le visite, recuperaré ese archivo en un Pendrive cifrado por si acaso.

Si veo que se baja películas X y fotos peor que X.  ;D ;D ;D ;D ;D ;D ;D, el programa dentro de tres meses borra dichas fotos y vídeos. ;) Muchas veces inserta por USB un disco duro extraible, quiero hacer un programa que tamién te analice algo y que al conectar una unidad, borre todo, nada más al detectarlo al tercer mes de usar el programa.

Si quieren información de un PC con sus contenidos. ¿Qué buscaría ustedes?

Saludos.

PD: Lo del lenguaje puede ser el más que te guste.
#475
Me gusta programar hasta la Calculadora CASIO.



A todo color y es la leche, en basic y en C/C++.
http://edu.casio.com/products/cg/cp2/

Saludos.
#476
Buenas:

C++ se usa para muchas cosas, lo que con el tiempo, algunas empresas y no pocas, dejaron el C++ para otros fines y se centran en productividad como Visual Studio .net.

Aprendí punteros de verdad con ensamblador del 8085, 8086 y los PIC, no te queda otra.  ;D ;D ;D ;D ;D ;D.
http://www.sc.ehu.es/sbweb/webcentro/automatica/web_8051/Contenido/cursoc51/Capitulo%206/uso_de_punteros_y_arrays_en_c51.htm

No olvidar que Pascal y Baisc precisamente se creó con el fin para aprender rápido de que va programar sin complicarse la vida para los iniciados, aprende antes y con menos estrés. Amime daigual empezar con C++, empecé con asm para crear los menús de los TV de antes como subir volumen y se vea la barra verde, eso si que fue difícil en la época de FP de antes.

Saludos.
#477
Hola:

En ciclo superior de programación nos hizo primero programar en Python, luego Java, luego SQL y Visual Basic .net

En otro de electrónica, asm del 8085, 8086 y del PIC16F84A, también basic para PC, sin contrar con otros para PLC como AWL que se parece asm.

Para coger el hilo rápido, según profesores, para los que no tenga idea de nada mejor lenguaje fáciles que para eso lo inventaron, luego pasas al C si quieres.

Hoy en día la tendencia es a páginas Web de todo tipo. Un lenguaje puede durar años pero no es eterno. El C/C++ está bien para rendimiento de alguna parte del programa, para hacer driver de algún dispositivo y cosas de bajo nivel.

Los tiempos cambia, incluido la tecnologíoa, aprender algo nuevo y te aparece otra tecnología por aprender si te metes en este mundo en las empresas.

Ten encuenta, cual es el motivo por el que quieres programar realmente. ¿Curiosidad? ¿Necesidad? Lo que sea. ;)

Si es cuestión de punteros C# también los tiene, lo que se aconseja no usarlos, ya no estamos en la época de antes.

https://msdn.microsoft.com/es-es/library/y31yhkeb.aspx

Punteros en C++.
[youtube=640,360]https://www.youtube.com/watch?v=wu2Do6vklhk[/youtube]

Ánimos y adelante.
#478
Buenas:

Para mi, este tipo de grupos para compartir información, conocimiento y aprendizaje, mejor por aquí, más cómodo.

Saludos.
#479
El C/C++ como fue difícil para empezar, pues hicieron el Pascal ya del año catapún pero se usa mucho en Delphi de la firma de Borland e incluso Visual Basic, ahora el.net.

Puedes empezarcon C#, es leche para programar escritorios, para cosas de electrónica C/C++.
#480
.NET (C#, VB.NET, ASP) / Contador de Byte[]
3 Enero 2017, 12:44 PM
Hola:

Quiero saber que al entrar datos por el puerto serie me cuente los byte recibidos y los alacene en un array tipo byte[]

¿Alguna idea?

El programa sin acabar que tengo hecho por ahora es este.

Código (csharp) [Seleccionar]
using System;
using System.IO;
using System.IO.Ports;
using System.Text;

namespace Recibir_archivo_desde_Arduino_consola
{
    class Program
    {
        public static string Recibidos = "";
        //public static byte[] datosArray = Encoding.ASCII.GetBytes(Recibidos);
        public static byte[] datosArray = Encoding.ASCII.GetBytes(Recibidos);

        static void Main(string[] args)
        {
            string COM = "";

            // Tamaño ventana consola.
            Console.WindowWidth = 55; // X. Ancho.
            Console.WindowHeight = 15; // Y. Alto.
            Console.Title = "Recoger foto desde Arduino y crearlo en el disco duro"; // Título de la ventana.

            // Crear un nuevo objeto SerialPort con la configuración predeterminada.
            SerialPort Puerto_serie = new SerialPort();

            // Configuración.
            Console.Write(@"
Introduzca un número para seleccionar puerto COM.
Por ejemplo el 4, sería COM4.

Puerto: ");
            COM = Console.ReadLine(); // Escribir el número del puerto.
            Console.Clear();

            Puerto_serie.PortName = "COM" + COM; // Número del puerto serie.


            Puerto_serie.BaudRate = 115200; // Baudios.
            Puerto_serie.Parity = Parity.None; // Paridad.
            Puerto_serie.DataBits = 8; // Bits de datos.
            Puerto_serie.StopBits = StopBits.Two; // Bits de parada.
            Puerto_serie.Handshake = Handshake.None; // Control de flujo.

            // Establecer la lectura / escritura de los tiempos de espera.
            Puerto_serie.ReadTimeout = 500;
            Puerto_serie.WriteTimeout = 500;

            try
            {
                Puerto_serie.Open(); // Abrir el puerto serie.
            }

            catch (IOException)
            {
                Console.ForegroundColor = ConsoleColor.Red; // Texto en rojo.
                Console.CursorVisible = false;
                Console.SetCursorPosition(16, 6);
                Console.WriteLine(@"El puerto " + Puerto_serie.PortName + @" no existe
                o no lo encuentra.");
            }

            Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
           
            Console.Read();
            Puerto_serie.Close(); // Cerrar puerto.
        }

        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)

        {
            SerialPort sp = (SerialPort)sender;
            int ByteLeidos = sp.Read(datosArray, 0, 28256);

            Console.Write(ByteLeidos);
        }
    }
}


El código no está bien.