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

#231
Buenas:

Hoy me volví loco de la cabeza. Entrego código incompleto, lo entrego como curiosidad. Lo intentaré acabarlo al 100 %.

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Menu_consola_09_cs
{
   class Program
   {
       // Variables globales.
       public static int luz = 6;
       public const int BRILLO_MAX = 8;
       public static bool radio = false;

       static void Main(string[] args)
       {
           // Título de la ventana.
           Console.Title = "Menú de opciones";

           // Tamaño ventana consola.
           // X anchura.
           Console.WindowWidth = 16;

           // Y altura.
           Console.WindowHeight = 2;

           // Oculto el cursor.
           Console.CursorVisible = false;
           ConsoleKey teclaInicial;
           Console.BackgroundColor = ConsoleColor.Green;

           // Letras negras.
           Console.ForegroundColor = ConsoleColor.Black;

           // Limpiar pantalla.
           do
           {
               Console.Clear();
               Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy"));
               teclaInicial = Console.ReadKey(true).Key;
               if(teclaInicial == ConsoleKey.Enter)
               {
                   menuPrincipal();
               }
           } while (teclaInicial != ConsoleKey.Escape); // SANTIAGOOOOO.
           
       }
       public static void menuPrincipal()
       {

           // Contador de teclas y navegador.
           int opcion = 0;
           bool salir = false;
           // Capturar tecla para luego validar.
           ConsoleKey tecla;
           
           do
           {

               //******************************************************************
               // Dibujo el menú.

               // Rellenar fondo verde.
               Console.BackgroundColor = ConsoleColor.Green;

               // Letras negras.
               Console.ForegroundColor = ConsoleColor.Black;

               // Limpiar pantalla.
               Console.Clear();

               switch (opcion)
               {
                   case 0:
                       Console.SetCursorPosition(0, 0);
                       Console.Write("Language");
                       break;
                   case 1:
                       Console.SetCursorPosition(0, 0);
                       Console.WriteLine("Ajustar hora ->");
                       break;
                   case 2:
                       Console.SetCursorPosition(0, 0);
                       Console.WriteLine("Ajustar fecha ->");
                       break;
                   case 3:
                       Console.SetCursorPosition(0, 0);
                       Console.WriteLine("Brillo");
                       break;
                   case 4:
                       Console.SetCursorPosition(0, 0);
                       Console.WriteLine("Ver radio");
                       break;
                   case 5:
                       Console.SetCursorPosition(0, 0);
                       Console.WriteLine("Vol. avisos");
                       break;
                   case 6:
                       Console.SetCursorPosition(0, 0);
                       Console.WriteLine("Vol. teclas");
                       break;
                   case 7:
                       Console.SetCursorPosition(0, 0);
                       Console.WriteLine("Salir menú");
                       break;
                   default:
                       Console.WriteLine("Fuera de rango.");
                       break;
               }

               // Fin de pintar el menú.
               //******************************************************************

               // Leer tecla ingresada por el usuario.
               tecla = Console.ReadKey(true).Key;

               // Validar el tipo de tecla.
               if (tecla == ConsoleKey.Enter)
               {
                   switch (opcion)
                   {
                       case 3:
                           brillo();
                           break;
                       case 4:
                           radiazo();
                           break;
                       case 7:
                           salir = true;
                           break;
                       default:
                           break;
                   }
               }

               if (tecla == ConsoleKey.DownArrow)
               {
                   opcion += 1;
               }

               if (tecla == ConsoleKey.UpArrow)
               {
                   opcion -= 1;
               }

               // Si está en la última opción, salta a la primera.
               if (opcion > 7)
               {
                   opcion = 0;
               }

               // Si está en la primera posición, salta a la última.
               if (opcion < 0)
               {
                   opcion = 7;
               }

               // Uso la tecla escape como salida.
           } while (salir==false);
       }

       #region Brillo (3).
       public static void brillo()
       {
           ConsoleKey teclaBrillo;
           Console.Clear();
           do
           {
               
               Console.SetCursorPosition(0, 0);
               Console.Write("Luz: ");

               for (int i = 0; i < luz; i++)
               {
                   Console.Write("X");
               }

               for (int j = 0; j < (BRILLO_MAX - luz); j++)
               {
                   Console.Write("-");
               }

               teclaBrillo = Console.ReadKey(true).Key;

               // ¿Se pulsó el cursor arriba?
               if (teclaBrillo == ConsoleKey.UpArrow)
               {
                   //¿no llega al limite?
                   if (luz < BRILLO_MAX)
                   {
                       // Incrementa 1.
                       luz++;
                   }
               }

               if (teclaBrillo == ConsoleKey.DownArrow)
               {
                   if (luz > 0)
                   {
                       // Decremmenta 1.
                       luz--;
                   }
               }

           } while (teclaBrillo != ConsoleKey.Enter);
       }
       #endregion

       #region Radio (4).
       public static void radiazo()
       {
           ConsoleKey teclaRadio;
           Console.Clear();
           do
           {
               Console.SetCursorPosition(0, 0);
               Console.Write("Radio: ");

               

               if (radio == true)
               {
                   Console.SetCursorPosition(7, 0);
                   Console.Write("On ");
               }

               else
               {
                   Console.SetCursorPosition(7, 0);
                   Console.Write("Off");
               }

               teclaRadio = Console.ReadKey(true).Key;

               if (teclaRadio == ConsoleKey.UpArrow)
               {
                   Console.SetCursorPosition(7, 0);
                   Console.Write("On ");
                   radio = true;
               }

               if (teclaRadio == ConsoleKey.DownArrow)
               {
                   Console.SetCursorPosition(7, 0);
                   Console.Write("Off");
                   radio = false;
               }

           } while (teclaRadio != ConsoleKey.Enter);
       }
       #endregion

   }
}



Hay una parte en Ver Radio que no me sale. Si pulso la fecla del teclado arriba, me sale "Radio: On". Si sigo pulsado la fecla arriba otra vez, se queda en On, lo mismo hacia abajo, que se queda en Off.

¿Hay alguna manera de que si pulso la tecla flecha arriba todo el rato o abajo se cambie en On y Off?

El código es esta función.
Código (csharp) [Seleccionar]
public static void radiazo()
        {
            ConsoleKey teclaRadio;
            Console.Clear();
            do
            {
                Console.SetCursorPosition(0, 0);
                Console.Write("Radio: ");



                if (radio == true)
                {
                    Console.SetCursorPosition(7, 0);
                    Console.Write("On ");
                }

                else
                {
                    Console.SetCursorPosition(7, 0);
                    Console.Write("Off");
                }

                teclaRadio = Console.ReadKey(true).Key;

                if (teclaRadio == ConsoleKey.UpArrow)
                {
                    Console.SetCursorPosition(7, 0);
                    Console.Write("On ");
                    radio = true;
                }

                if (teclaRadio == ConsoleKey.DownArrow)
                {
                    Console.SetCursorPosition(7, 0);
                    Console.Write("Off");
                    radio = false;
                }

            } while (teclaRadio != ConsoleKey.Enter);
        }


Saludos
;)
#232
Gracias, estoy en ello. ;)

Lo dejo más claro, luego hago esquema de cada submenú.



Antes usé solo if. Ahora hice lo mismo pero con Switch. No se cual es el más indicado para hacer el submenú.

Código (csharp) [Seleccionar]
                switch (contador)
                {
                    case 0:
                        Console.SetCursorPosition(0, 0);
                        Console.Write("FECHA");


                        break;
                    case 1:
                        Console.SetCursorPosition(0, 0);
                        Console.Write("MENú ▲▼");
                        break;
                    case 2:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("1.   UNO");
                        break;
                    case 3:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("2.   DOS");
                        break;
                    case 4:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("3.   TRES");
                        break;
                    case 5:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("4.  CUATRO");
                        break;
                    case 6:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("5. ESC = SALIR");
                        break;
                    default:
                        Console.WriteLine("Fuera de rango.");
                        break;
                }


Salu2.
#233
Buenas:

Me ha servido el truco para el código de arriba. Ahora haciendo un menú de solo usar 16x2 de resolusión. Hago este código base.

En este caso lo que hace es seleccionar opciones en el menú, pero no hace nada más. Las opciones en el menú se llama.

Menú ▲▼

1. UNO
2. DOS
3. TRES
4. CUATRO
5. ESC - SALIR

Por ejemplo, seleccionamos el 3. TRES. Pulse Enter y justo una línea de abajo dice:

3. TRES ▲▼

Después de pulsar Enter, se sustituye el texto 3. TRES ▲▼ por otro abajo.

Alum. ●●●●●●○○

En el cual podemos hacer cosas, estando ya en la subopción indicado arriba. Si pulsamos Enter, de Alum. ●●●●●●○○ vuelve al menú principal en este caso donde estaba, llamdo 3. TRES ▲▼. Si etás todavía en Alum. ●●●●●●○○, puedes pulsar la teclas arriba y abajo para mover las opciones indicadas de esta manera mostrada abajo.

Son 8 puntos. Lo que hace es alumbrar el brillo de una luz, el brillo más débil es de esta manera. Alum. ○○○○○○○○. El brillo máximo es de otra manera, Alum. ●●●●●●●●. Con las flechas del teclado arriba y abajo, seleccionamos un punto, de 1 hasta 8. La mitad sería así: Alum. ●●●●○○○○. Pulsa enter, guarda la configuración en una variable para que la recuerde y sale al menú principal.

Espero que se entienda lo que quiero hacer.

Dejo el código base, solo selecciona opciones pero al pulsar Enter tiene que hacer al menos el 3. TRES.

Código consola C#:
Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Menu_consola_09_cs
{
    class Program
    {
        static void Main(string[] args)
        {
            // Título de la ventana.
            Console.Title = "Menú de opciones";

            // Tamaño ventana consola.
            // X anchura.
            Console.WindowWidth = 16;

            // Y altura.
            Console.WindowHeight = 2;

            // Oculto el cursor.
            Console.CursorVisible = false;

            // Contador de teclas y navegador.
            int contador = 0;

            // Capturar tecla para luego validar.
            ConsoleKey tecla;

            do
            {

                //******************************************************************
                // Dibujo el menú.
               
                // Rellenar fondo verde.
                Console.BackgroundColor = ConsoleColor.Green;

                // Letras negras.
                Console.ForegroundColor = ConsoleColor.Black;
               
                // Limpiar pantalla.
                Console.Clear();

                if (contador == 0)
                {
                    Console.SetCursorPosition(0, 0);
                    Console.Write("MENú ▲▼");
                }

                if (contador == 1)
                {
                    Console.SetCursorPosition(0, 0);
                    Console.WriteLine("1.   UNO");
                }

                if (contador == 2)
                {
                    Console.SetCursorPosition(0, 0);
                    Console.WriteLine("2.   DOS");
                }

                if (contador == 3)
                {
                    Console.SetCursorPosition(0, 0);
                    Console.WriteLine("3.   TRES");
                }

                if (contador == 4)
                {
                    Console.SetCursorPosition(0, 0);
                    Console.WriteLine("4.  CUATRO");
                }

                if (contador == 5)
                {
                    Console.SetCursorPosition(0, 0);
                    Console.WriteLine("5. ESC = SALIR");
                }

                // Fin de pintar el menú.
                //******************************************************************

                // Leer tecla ingresada por el usuario.
                tecla = Console.ReadKey(true).Key;

                //validar el tipo de tecla
                if (tecla == ConsoleKey.DownArrow)
                {
                    contador += 1;
                }

                if (tecla == ConsoleKey.UpArrow)
                {
                    contador -= 1;
                }

                // Si está en la última opción, salta a la primera.
                if (contador > 5)
                {
                    contador = 0;
                }

                // Si está en la primera posición, salta a la última.
                if (contador < 0)
                {
                    contador = 5;
                }

                // Uso la tecla escape como salida.
            } while (tecla != ConsoleKey.Escape);
        }
    }
}



Captura:


Una cosa a tener en cuenta. En vez de aparecer

MENú ▲▼

En pantalla, lo primero que debe aparecer en el programa en HOLA. Si pulsas Enter, entonces ya aparece el Menú. Si pulsa salir apareces en HOLA. Luego hacer lo demás con el 3. TRES indicado arriba.

¿Alguna ayuda?

Saludos.
#234
Muchas gracias. En Windows 10, "Mapa de carácteres" saqué todo. ;)
#235
.NET (C#, VB.NET, ASP) / Menús en modo consola
3 Febrero 2019, 08:54 AM
Hola:

Estoy usando la consola de C#, me dio ahora por el retro.



Hice este menú de opciones, pero no hace nada. Por ahora solo selecciona las opciones.

Lo que no se es como entrar en otra opción dentro de ella en DOS al pulsar Enter.

Estoy en el submenú que sale un menaje que diga. Estoy dentro de la opción DOS. Con capacidad de pulsar Escape y vuelva al menú principal.

Lo que he hecho hasta ahora es solo esto.

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Menu_consola_02_cs
{
    class Program
    {
        static void Main(string[] args)
        {
            // Título de la ventana.
            Console.Title = "Menú de opciones";

            // Tamaño ventana consola.
            Console.WindowWidth = 20; // X anchura.
            Console.WindowHeight = 8; // Y altura.

            // Cursor invisible.
            Console.CursorVisible = false;

            //Contador de teclas y navegador
            int contador = 0;
            //tomar la tecla para validar luego
            ConsoleKey tecla;
            //escondo el cursor
            Console.CursorVisible = false;
            do
            {
                //******************************************************************
                //Pinto el menú
                Console.Clear();
                Console.Write("╔══════════════════╗\n");
                if (contador == 0)
                {
                    Console.BackgroundColor = ConsoleColor.White;
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.Write("║   UNO            ║\n");
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write("║   UNO            ║\n");
                }
                if (contador == 1)
                {
                    Console.BackgroundColor = ConsoleColor.White;
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.Write("║   DOS            ║\n");
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write("║   DOS            ║\n");
                }
                if (contador == 2)
                {
                    Console.BackgroundColor = ConsoleColor.White;
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.Write("║   TRES           ║\n");
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write("║   TRES           ║\n");
                }
                if (contador == 3)
                {
                    Console.BackgroundColor = ConsoleColor.White;
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.Write("║   CUATRO         ║\n");
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write("║   CUATRO         ║\n");
                }
                if (contador == 4)
                {
                    Console.BackgroundColor = ConsoleColor.White;
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.Write("║   ESC = SALIR    ║\n");
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write("║   ESC = SALIR    ║\n");
                }
                Console.Write("╚══════════════════╝\n");
                //Fin de pintar el menú
                //******************************************************************

                //leer tecla ingresada por el usuario
                tecla = Console.ReadKey(true).Key;

                //validar el tipo de tecla
                if (tecla == ConsoleKey.DownArrow)
                {
                    contador += 1;
                }
                if (tecla == ConsoleKey.UpArrow)
                {
                    contador -= 1;
                }
                //valido que el conteo de teclas no supere el rango establecido por los Ifs de más arriba
                if (contador > 4)
                {
                    contador = 4;
                }
                if (contador < 0)
                {
                    contador = 0;
                }
                //uso la tecla escape como salida
            } while (tecla != ConsoleKey.Escape);
        }
    }
}


No logro cuajarlo como si se ha hecho por aquí en este otro ejemplo de abajo.

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Menu_y_opciones_consola_02_cs
{
    class Program
    {
        static void Main(string[] args)
        {
            // Título de la ventana.
            Console.Title = "Menú y opciones C# 2017";

            // Tamaño ventana consola.
            Console.WindowWidth = 30; // X. Ancho.
            Console.WindowHeight = 17; // Y. Alto.

            // Cursor invisible.
            Console.CursorVisible = false;

            // Cuadro doble borde ventana.
            Menu_y_opciones_consola_02_cs.Cuadro.cuadrado();

            // Posición del mansaje en la ventana.
            Console.SetCursorPosition(2, 2);
            Console.WriteLine("Elija una opción:");
            Console.WriteLine("");
            Console.SetCursorPosition(2, 4);
            Console.WriteLine("1 - Opción A.");
            Console.SetCursorPosition(2, 5);
            Console.WriteLine("2 - Opción B.");
            Console.SetCursorPosition(2, 6);
            Console.WriteLine("3 - Opción C.");
            Console.SetCursorPosition(2, 7);
            Console.WriteLine("Escape - Salir.");
            Console.SetCursorPosition(2, 8);
            Console.Write("===============");

            ConsoleKey key;

            do
            {
                // Cursor invisible
                Console.CursorVisible = false;

                // Lee cualquier tecla.
                key = Console.ReadKey(true).Key;

                // Variable de mensaje vacío.
                string mensaje = string.Empty;

                // Leer tecla selecconada por el usuario.
                switch (key)
                {
                    case ConsoleKey.D1: // Tecla principal 1.
                    case ConsoleKey.NumPad1: // Tecla extendida 1.
                        Console.SetCursorPosition(2, 10);
                        mensaje = "OPCIÓN A."; // Mostrar mensaje en pantalla.
                        break;

                    case ConsoleKey.D2:
                    case ConsoleKey.NumPad2:
                        mensaje = "OPCIÓN B.";
                        break;
                    case ConsoleKey.D3:
                    case ConsoleKey.NumPad3:
                        mensaje = "OPCIÓN C.";
                        break;
                }

                // Posición de los mensajes.
                Console.SetCursorPosition(2, 10);
                Console.Write("             "); // 13 espacios.
                Console.SetCursorPosition(2, 10);
                Console.Write(mensaje);

            }

            // Salir de la plicación al pulsar la tecla Escape o número 4.
            while (key != ConsoleKey.Escape);


        }
    }
}


Saludos.
#236
Hola gente del foro:

Que pasen buen comienzo del 2.019. ;)

Quiero hacer con Windows Form cambiar de opción de una Web de gmail. En este caso pongo el enlace.

https://myaccount.google.com/lesssecureapps

Desde la Web puedo poner o No.

¿Existe esta posibilidad controlar esa opción desde C#?

Por supuesto que tendrás que poner en C# los datos la cuenta gmail, eso seguro.

Saludos.
#237
Si tienes el IDE abierto, pulsa F5.
#238
Hola:

Es un puntazo hacer lo mismo con el PowerShell. Me alegro que lo hicieras. Quiero ver el código completo si no te importa.

Estaba un tiempo con él y me moló.
Lo único que he hecho con él hasta ahora son tonterías como abrir y cerrar la bandeja del disco DVD del lector, tanto en modo consola como modo visual.

Eso si, hecho gracias por los compañeros de este foro poco a poco.

Modo consola PowerShell
$MemDef = @"
[DllImport("winmm.dll", CharSet = CharSet.Ansi)]
   public static extern int mciSendStringA(
   string lpstrCommand,
   string lpstrReturnString,
   int uReturnLength,
   IntPtr hwndCallback);
"@

$winnm = Add-Type -memberDefinition $MemDef -ErrorAction 'SilentlyContinue' -passthru -name mciSendString
function Set-CDAudioDoor {
Param(
  [ValidateSet("open", "closed")][String[]]$Mode = 'open'
)
$winnm::mciSendStringA("set cdaudio door $mode", $null, 0,0)}

function mostrarMenu
{
     param ([string]$Titulo = ' Control bandeja del lector ',
     [string]$PS = ' PowerShell              ')
     cls
     Write-Host "╔====================================╗"
     Write-Host "║           $PS║"
     Write-Host "╠====================================╣"
     Write-Host "║    $Titulo    ║"
     Write-Host "╠====================================╣"
     Write-Host "║                                    ║"
     Write-Host "║    A) Abrir.                       ║"
     Write-Host "║    C) Cerrar.                      ║"
     Write-Host "║    I) Información.                 ║"
     Write-Host "║    S) Presiona 'S' para salir.     ║"
     Write-Host "║                                    ║"
     Write-Host "╚====================================╝"
}

do
{
     mostrarMenu
     $input = Read-Host "      Elegir una Opción"
     switch ($input)
     {
           'a' {
                cls
                'Abriendo...'
                Set-CDAudioDoor open
                cls
                'Abierto.'
           } 'c' {
                cls
                'Cerrando...'
                Set-CDAudioDoor closed
                cls
                'Cerrado.'
           } 'i' {
                cls
                'PowerShell'
                '=========='
                Get-Host
                'Electrónica PIC'
                '==============='
                ''
                'e-mail: metaconta@gmail.com'
                ''
                #pause
           } 's' {
                return
           } 
     }
     pause
}
until ($input -eq 's')


Modo Visual en PowerShell.

$Diskmaster = New-Object -ComObject IMAPI2.MsftDiscMaster2           
$DiskRecorder = New-Object -ComObject IMAPI2.MsftDiscRecorder2           
$DiskRecorder.InitializeDiscRecorder($DiskMaster)

function Set-CDAudioDoor {
Param(
  [ValidateSet("open", "closed")][String[]]$mode
)
if ($mode -eq 'open'){
    $label_Mensaje.Text = "Abriendo..."
    $DiskRecorder.EjectMedia()
    $label_Mensaje.Text = "Abierto."
    }
else {
    $label_Mensaje.Text = "Cerrando..."
    $DiskRecorder.CloseTray()
    $label_Mensaje.Text = "Cerrado."
    }
}

# Cargo los Assemblies. (Necesario para definir el form).
[void][reflection.assembly]::loadwithpartialname("System.Windows.Forms")
[void][reflection.assembly]::loadwithpartialname("System.Drawing")

# Formulario.
$Form = New-Object system.Windows.Forms.Form
$Form.Text = "PowerShell 2017"
$Form.Size = New-Object system.Drawing.Size(300, 300)
$Form.FormBorderStyle = "FixedDialog"
$Form.TopMost = $true
$Form.MaximizeBox = $false
$Form.MinimizeBox = $false
$Form.ControlBox = $true
$Form.StartPosition = "CenterScreen"
$Form.Font = "Segoe UI"

# Botón abrir.
$button_Abrir = New-Object system.windows.Forms.Button
$button_Abrir.Text = "Abrir"
$button_Abrir.Width = 75
$button_Abrir.Height = 23
$button_Abrir.location = new-object system.drawing.point(40, 150)
$button_Abrir.Font = "Microsoft Sans Serif,10"
$Form.controls.Add($button_Abrir)

# Botón cerrar.
$button_Cerrar = New-Object system.windows.Forms.Button
$button_Cerrar.Text = "Cerrar"
$button_Cerrar.Width = 75
$button_Cerrar.Height = 23
$button_Cerrar.location = new-object system.drawing.point(174, 150)
$button_Cerrar.Font = "Microsoft Sans Serif,10"
$Form.controls.Add($button_Cerrar)

# Label.
$label_Mensaje = New-Object system.windows.Forms.Label
$label_Mensaje.Text = "?"
$label_Mensaje.AutoSize = $true
$label_Mensaje.location = new-object system.drawing.point(20,26)
$label_Mensaje.Size = new-object system.drawing.point(54,10)
$label_Mensaje.Font = "Microsoft Sans Serif, 36, style=Bold"
$Form.controls.Add($label_Mensaje)

# Botón abrir  bandeja.
$button_Abrir.Add_Click({Set-CDAudioDoor open})

# Botón cerrar  bandeja.
$button_Cerrar.Add_Click({Set-CDAudioDoor closed})


[void]$Form.ShowDialog()
$Form.Dispose()


Fuera off-toppic.

No me deja en hotmail, como está vinculado el gmail para la recuperación de cuentas, me salga el mismo mensaje de seguridad en la entrada de hotmail.

Siempre pasa algo que no me deje.
#239
Hola:

Estaba curioseando si hay alguna manera de enviar mensajes de texto y recibirlo con el PC y la PlayStation 4 usando C#.

Buscando que te busca en el San Google, no veo que lo hayan hecho, me da que no se puede. Si hay alguien que sabe del tema, lo puede confirmar por aquí.

Por aquí dicen que no se puede, pero vete a sabar a día de hoy.
https://www.laps4.com/foro/18_zona_psnetwork/320251-mandar_mensaje_pc.html

Ya dirán si existe esa posibilidad.

Saludos.
#240
Si no te llegara a entender, choco con la pared. Es importante el enlace que nos proporcinó nuestro compañero.
https://myaccount.google.com/lesssecureapps

Nos dio el enlace directamente, no se que paso hay que darle para llegar a él.

Ahora si funciona con Windows Form.



Código (csharp) [Seleccionar]
using System;
using System.Windows.Forms;
using System.Net;       // No olvidar.
using System.Net.Mail;  // No olvidar.

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

       private void button_Enviar_Click(object sender, EventArgs e)
       {
           // La cadena "servidor" es el servidor de correo que enviará tu mensaje.
           string servidor = comboBox_smtp.SelectedItem.ToString(); // smtp.gmail.com

           // Crea el mensaje estableciendo quién lo manda y quién lo recibe.
           MailMessage mensaje = new MailMessage(
              textBox_Emisor.Text,
              textBox_Receptor.Text,
              textBox_Asunto.Text,
              richTextBox_Mensaje.Text);

           // Envía el mensaje.
           SmtpClient cliente = new SmtpClient(servidor);
           cliente.DeliveryMethod = SmtpDeliveryMethod.Network;
           cliente.UseDefaultCredentials = false;
           cliente.EnableSsl = true;
           cliente.Credentials = new NetworkCredential(textBox_Emisor.Text, textBox_Contraseña.Text); // usuario@gmail.com, Contraseña.
           cliente.Port = Int32.Parse(comboBox_Puerto.Text); ; // 587
           cliente.Host = servidor; // smtp.gmail.com

           // Añade credenciales si el servidor lo requiere.
           //cliente.Credentials = CredentialCache.DefaultNetworkCredentials;
           cliente.Send(mensaje);
       }
   }
}


Ahora me toca por mi parte, mejorar el código, hacer el programa más completo.

Por fin funciona. Muchas gracias a todos.


Edito:
Me dio por curiosidad probarlo en modo consola y no funciona, el mismo problema y no se parece nada de los credenciales. Algo no lo veo.


Código (csharp) [Seleccionar]
using System;
using System.Net.Mail;
using System.Text;
using System.Net;

namespace Enviar_e_mail_Consola_03_cs
{
    class Program
    {
        static void Main(string[] args)
        {
            string usuario, contraseña, destinatario, asunto, mensaje;

            // Título de la ventana.
            Console.Title = "Enviar e-mail con Consola C#";

            // Tamaño ventana consola.
            Console.WindowWidth = 100; // X. Ancho.
            Console.WindowHeight = 40; // Y. Alto.

            Console.WriteLine("\t\t----------------------------------------");
            Console.WriteLine("\t\t\tEnviar Correo Electrónico");
            Console.WriteLine("\t\t----------------------------------------");


            Console.WriteLine("\n");
            Console.Write("\t\tIngresa tu correo electrónico: ");
            usuario = Console.ReadLine();
            Console.Write("\t\tIngresa tu password: ");
            contraseña = leerPassword();


            Console.Write("\t\tDestinatario: ");
            destinatario = Console.ReadLine();
            Console.Write("\t\tAsunto: ");
            asunto = Console.ReadLine();
            Console.Write("\t\tMensaje: ");
            mensaje = Console.ReadLine();

            MailMessage correo = new MailMessage(usuario, destinatario, asunto, mensaje);

            SmtpClient servidor = new SmtpClient("smtp.gmail.com");
            servidor.Port = 587;
            NetworkCredential credenciales = new NetworkCredential(usuario, contraseña);
            servidor.Credentials = credenciales;
            servidor.EnableSsl = true;

            try
            {
                Console.WriteLine("Enviando...");
                servidor.Send(correo);
                Console.WriteLine("\t\tCorreo enviado de manera exitosa.");
                correo.Dispose();
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("\t\tNo se ha enviado nada.");
                Console.ReadKey();
            }
        }

        // A la hora de introducir la contraseña, se sustituye por asterístos (*) en pantalla.
        public static string leerPassword()
        {
            ConsoleKeyInfo cki;
            StringBuilder sb = new StringBuilder();

            do
            {
                cki = Console.ReadKey(true);
                if (cki.Key != ConsoleKey.Enter)
                {
                    sb.Append(cki.Key);
                    Console.Write("*");
                }

                else
                    break;

            } while (true);
            Console.WriteLine();
            return sb.ToString();
        }
    }
}


Por mucho que compare el de Windows Form, no lo pillo.

Saludos.