Вход/Регистрация
Программирование КПК и смартфонов на .NET Compact Framework
вернуться

Климов Александр Петрович

Шрифт:

public Sound(Stream stream) {

// читаем данные из потока

m_soundBytes = new byte[stream.Length];

stream.Read(m_soundBytes, 0, (int)stream.Length);

}

/// <summary>

/// Воспроизводим звук

/// </summary>

public void Play {

// Если из файла, то вызываем PlaySound.

// если из ресурсов, то PlaySoundBytes.

if (m_fileName != null)

PlaySound(m_fileName, IntPtr.Zero,

(int)(Flags.SND_ASYNC | Flags.SND_FILENAME));

else

PlaySoundBytes(m_soundBytes, IntPtr.Zero,

(int)(Flags.SND_ASYNC | Flags.SND_MEMORY));

}

 }

}

Теперь нужно перейти к самой форме. Код для нее приведен в листинге 13.12.

Листинг 13.12

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Reflection;

namespace PlaySound_CS {

 public partial class Form1 : Form {

public Form1 {

InitializeComponent;

InitializeComponent;

#if DEBUG

MinimizeBox = false;

#else

MinimizeBox = true;

#endif

}

private void butResource_Click(object sender, EventArgs e) {

Sound sound =

new Sound(Assembly.GetExecutingAssembly.GetManifestResourceStream(

"PlaySound_CS.chimes.wav"));

sound.Play;

}

private void butFile_Click(object sender, EventArgs e) {

Sound sound = new Sound("Windows\\alarm3.wav");

sound.Play;

}

 }

}

Системные звуки

Также разработчик может использовать функцию

MessageBeep
, позволяющую проигрывать системные звуки. Код, использующий эту функцию, приведен в листинге 13.13.

Листинг 13.13

[DllImport("coredll.dll")]

extern static void MessageBeep(uint BeepType);

private void butBeep_Click(object sender, EventArgs e) {

 MessageBeep(0);

}

Системное время

Чтобы получить или установить системное время на устройстве, нужно использовать функции

GetSystemTime
и
SetSystemTime
. Следует учитывать, что функция
GetSystemTime
возвращает время по Гринвичу, а не местное время. Код, иллюстрирующий применение этих функций, приведен в листинге 13.14.

Листинг 13.14

using System.Runtime.InteropServices;

[DllImport("coredll.dll")]

private extern static void GetSystemTime(ref SYSTEMTIME lpSystemTime);

[DllImport("coredll.dll")]

private extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime);

private struct SYSTEMTIME {

 public ushort wYear;

 public ushort wMonth;

 public ushort wDayOfWeek;

 public ushort wDay;

 public ushort wHour;

 public ushort wMinute;

 public ushort wSecond;

 public ushort wMilliseconds;

}

private void GetTime {

 // Получим системное время

 SYSTEMTIME st = new SYSTEMTIME;

 GetSystemTime(ref st);

  • Читать дальше
  • 1
  • ...
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: