• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Воспроизведение аудио + вопросы по Messagebox

  • Автор темы Автор темы MadYd
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
M

MadYd

Ситуация такая... Таймер, который отвечает за построение бегущего графика текущей температуры, также должен осуществлять проверку значений, по которым строится сам график.

private void timer3_Tick(object sender, EventArgs e)
{

//-------------------------------------------------------------

y2=p();

// --------------------------------------------------------------

j=Tverh();

h=Tniz();

//Дальше должна идти проверка

}

Переменные j и h получают значения, ограничивающие значение y2, и в случае, если y2 будет выходить за пределы, то должно выскакивать какое-нибудь сообщение и играть какая-нибудь сирена! Но поскольку таймер выполняет одно и тоже, то новый MEssageBox после проверки выскакивает каждую секунду! Я не знаю как сделать так, чтобы вылетело ТОЛЬКО ОДНО сообщение, а не бесконечное множество, но при этом Таймер продолжил бы стороить график. А так же у меня вопрос- как можно воспроизвести звуковой файл(тут не нужно ничего мудреного, просто может одна какая-нибудь команда есть, допустим специально для waw)?
 
По поводу отображения единственного MessageBox'a можно где-нибудь в программе запомнить время последнего отображения (DateTime lastDisplay = DateTime.Now), а потом смотреть, прошло ли достаточно времени для того, чтобы его показать еще раз: if (DateTime.Now.Substruct(lastDisplay).ToMinutes > 1) {MessageBox.Show(...);}.

По поводу воспроизведения аудио - результат первого запроса в Google вывел мне примерно следующее:
Код:
 [DllImport("WinMM.dll")]
public static extern bool PlaySound(byte[]wfname, int fuSound);

public void Play(string wfname,int SoundFlags)
{
byte[] bname = new Byte[256];	//Max path length
bname = System.Text.Encoding.ASCII.GetBytes(wfname);
PlaySound(bname,SoundFlags);
}

Адрес статьи тут:
 
Для отображения бокса 1 раз я бы завел логическую переменную, а затем проверка при выводе бокса

Код:
bool warningShown=false;
...........................
if (!warningShown)
{
MessageBox.Show("Error");
warningShown=true;
}
...............................

что-то типа этого
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы