PDA

Просмотр полной версии : Звук


supernewbie
08.07.2010, 23:29
Можно ли сделать звуковое оповещение при приходе пакета?

И еще, как сделать TForm всегда в фоновом режиме? (Поверх всех окон)

J-Fobos
09.07.2010, 00:39
Насчет звука не уверен, но если не найдется ничего лучше использования плагинов, то можно использовать функцию ShowMessage(msg:Variant); предварительно в настройках винды установив нужный звук на это событие.

Поверх всех окон вот так:
var Form1:TForm;
//==========
Form1.FormStyle:=fsStayOnTop;

Fer123
09.07.2010, 00:43
На счет звука - можно использовать функцию Beep из kernel32.dll
вот пример

var kernel32:integer;

procedure Init;
begin
kernel32 := loadLibrary('kernel32.dll');
end;

Procedure Free;
begin
FreeLibrary(kernel32);
end;

begin
if FromServer and (pck[1]=#$03) then CallFunction(kernel32,'Beep',2,[200,1000]); // где 200 это частота гудка, а 1000 время звучания в милисекундах
end.

supernewbie
09.07.2010, 01:03
че-то веер не работает)

Fer123
09.07.2010, 01:34
У меня работает.. Кинь CallFunction(kernel32,'Beep',2,[200,100]); в Init там точно сработает. У тебя же ОС windows?

supernewbie
09.07.2010, 11:38
win XP sp 2 x64

Добавлено через 55 секунд
и ничего не слышно) никакого бип)

Добавлено через 9 часов 58 минут
форма стала в топе, остался вопрос про звук

alexteam
09.07.2010, 13:34
и ничего не слышно) никакого бип)
спикер отсуствует ?

Добавлено через 2 минуты
по поводу звука.
function PlaySound(pszSound: PChar; hmod: HMODULE; fdwSound: DWORD): BOOL; external 'winmm.dll' name 'PlaySoundA'; stdcall;
игрет вав.
я плагин для пх выкладывал. добавляющий плайсоунд в скриптовый движек. но его с дампа потерли уже давно. попроси у тамбика\гака.. у них возможно он остался.

supernewbie
09.07.2010, 14:10
эммм, тамбик? гак? кто-нибудь?

Добавлено через 4 минуты

function PlaySound(pszSound: PChar; hmod: HMODULE; fdwSound: DWORD): BOOL; external 'winmm.dll' name 'PlaySoundA'; stdcall;
это все вообще выдает ошибку при компиляции..

Добавлено через 5 минут
ну вот кое-что, что НОРМАЛЬНО работает...

lib := loadLibrary('user32.dll');
CallFunction(lib,'MessageBeep',1,[5000]);

alexteam
09.07.2010, 14:44
это все вообще выдает ошибку при компиляции..
а кто тебе сказал что оно должно компилиццо в фастскрипте в таком виде ?

Добавлено через 30 секунд
ну вот кое-что, что НОРМАЛЬНО работает...
вот. для сравнения.
function MessageBeep(uType: UINT): BOOL; external 'user32.dll' name 'MessageBeep';

QaK
18.07.2010, 18:22
гакаэто кто такой?:eek:

alexteam
18.07.2010, 18:30
QaK, нискажу, тебе знать нипаложено )

mira
11.08.2010, 11:14
если есть исходник то зарегать плейсаунд в фсе. Для извращенцев можно вызывать и клиентовские саунды но тоже нада регать.кернелский бип бред нада динамик и поток встает на время звука. Месаджбип тупо. Хотел text to speech прикрутить но дистрибутив левый нада таскать., проблемы совместимости и мутная установка отбили идею

Kilatif
12.08.2010, 16:16
А если можно в фастскрипте юниты притягивать, то стырить с делфы юнит MediaPlayer'a и тогда вообще будет изврат))

mira
12.08.2010, 17:08
да все можно тока зачем х#ем гвозди забивать если можно добавить пару строк в юнит.