подать звуковой сигнал в WinCE, это возможно? - PullRequest
5 голосов
/ 24 января 2009

можно ли подать звуковой сигнал в WinCE?

я пытаюсь получить ошибку

Ответы [ 4 ]

11 голосов
/ 24 января 2009

Методы платформы .net для beeing недоступны в версии CF платформы. Лучший способ получить звуковой сигнал - это PInvoke в функцию MessageBeep. Подпись PInvoke для этого метода довольно проста

[DllImport("CoreDll.dll")]
public static extern void MessageBeep(int code);

public static void MessageBeep() {
  MessageBeep(-1);  // Default beep code is -1
}

В этом сообщении блога есть отличный более подробный пример: http://blog.digitforge.com/?p=4 (на archive.org)

6 голосов
/ 24 января 2009

Да. P / Invoke PlaySound или sndPlaySound или MessageBeep . См. это или это или это . Удивительно, что 30 секунд с поисковой системой могут появиться.

4 голосов
/ 21 октября 2014

Если вы хотите воспроизвести один из системных звуков по умолчанию и использовать .net runtime 2.0+ (и framework v 3.5+), то вы можете использовать класс System.Media.SystemSounds (нет необходимо для вызовов PInvoke или WinAPI), например:

//available system sounds
System.Media.SystemSounds.Asterisk.Play();
System.Media.SystemSounds.Beep.Play();
System.Media.SystemSounds.Exclamation.Play();
System.Media.SystemSounds.Hand.Play();
System.Media.SystemSounds.Question.Play();

Обратите внимание, что пользователь ничего не услышит, если он отключил или отключил системные звуки.

Однако, если вы хотите воспроизвести произвольный тон, вам нужно посмотреть на приведенные выше ответы, касающиеся WinAPI или PInvoke.

0 голосов
/ 11 января 2016

Для простого звукового сигнала в Compact Framework вам не нужны все эти несуразицы. Кроме того, в зависимости от оборудования у вас все равно будет доступ к звуковому сигналу по умолчанию. Просто используйте:

Microsoft.VisualBasic.Interaction.Beep()
...