Loading...
rado84 avatar rado84 1 Точки

Console.Beep - пауза и изход?

Заиграх се с упражнението Console.Beep и му зададох 4 различни звука с еднаква продължителност. Само че не мога да разбера как да накарам компютъра да сложи пауза между тях (примерно от 1 секунда), след което да плейне следващия звук. Опитах с break; - не става, MSVS подчертава "break" като грешна дума още докато я пиша. Опитах да задам "тишина" (честота 0, дължина 1000 мс) - дава грешка от типа "програмата спря да работи".

Също така ме интересува как да му задам, след като изпълни звуците, да затвори конзолата автоматично, тоест потребителят да не се налага да натиска някое копче, за да се затвори. return не я затваря, Environment.Exit - също.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BeepExercise
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Beep(352, 250);
            Console.Beep(372, 250);
            Console.Beep(392, 250);
            Console.Beep(412, 250);
            Environment.Exit(0);
        }
    }
}

Ползвах Гугъл (именно така намерих EnvExit и return командите), но MSVS явно не харесва точно тези команди.

Плийз, хелп?

Тагове:
0
Programming Basics
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Пауза можеш да симулираш с:

Thread.Sleep(1000);

Трябва да добавиш отгоре обаче:

using System.Threading;

Намерих и как да си "убиеш" конзолата laugh

foreach (Process process in Process.GetProcesses())
    if (process.ProcessName == "cmd")
        process.Kill();

Отгоре ти трябва:

using System.Diagnostics;

 

2
08/05/2016 02:07:44
rado84 avatar rado84 1 Точки

Мерси. Това стана. А за изхода?

0
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Виж отгоре отговора - добавих и за изхода.

0
rado84 avatar rado84 1 Точки

Мерси, ще го пробвам и това. Аз обаче намерих нещо друго докато чаках твоя отговор, което стана. Просто трябваше да съм малко по-прецизен в критериите си за търсене.

Първо трябваше да добавя reference System.Windows.Forms и след кода просто да напиша exit, та MSVS да се досети какво искам да направя и да ми предложи Generate Program Exit чрез жълтата лампичка. И понеже исках програмата да се затвори 5 сек. след като се е изпълнила, ѝ зададох thread sleep 5000 ms. И нещата станаха. Но ще пробвам и твоя вариант, поне да видя кой ми харесва повече като резултат. :)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BeepExercise
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Beep(352, 250);
            Thread.Sleep(1000);
            Console.Beep(372, 250);
            Thread.Sleep(1000);
            Console.Beep(392, 250);
            Thread.Sleep(1000);
            Console.Beep(412, 250);
            Thread.Sleep(5000);
        }

        private static void Exit()
        {
            throw new NotImplementedException();
        }
    }
}

Edit: с твоя вариант нещо не се получават нещата. Добавих System.Diagnostics и после твоя код и МСВС го подчертава цялото, че било грешно:

Едит 2: горе в известията пишеше, че си добавил коментар за ракета, който обаче е изчезнал и не мога да го намеря. Но все пак добавих обратно броене, за по-забавно. :D

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BeepExercise
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Beep(352, 250);
            Thread.Sleep(1000);
            Console.Beep(372, 250);
            Thread.Sleep(1000);
            Console.Beep(392, 250);
            Thread.Sleep(1000);
            Console.Beep(412, 250);
            Console.WriteLine(5);
            Thread.Sleep(1000);
            Console.WriteLine(4);
            Thread.Sleep(1000);
            Console.WriteLine(3);
            Thread.Sleep(1000);
            Console.WriteLine(2);
            Thread.Sleep(1000);
            Console.WriteLine(1);
        }

        private static void Exit()
        {
            throw new NotImplementedException();
        }
    }
}

 

1
08/05/2016 03:06:02
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Ех laugh, остава да изведеш едно обратно броене на конзолата 5-4-3-2-1 laugh и излита ракетата laugh

1
annsta avatar annsta 305 Точки

Подчетава ти като грешен код, защото си сложил кода извън Main :)

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.