Вывод звука в ProTool
Александр Родин, ООО "Нева Электрик"; 31.7.03

В ProTool-е сконфигурирована PC-station. В определенные моменты (например приход аварийного сообщения) необходимо прогирывать определенный звук (громко, поэтому пукалка не подходит), но как это сделать ? По идее как-то можно привязать в скрипт вызов функции по типу sndPlaySoundA из winmm.dll, но чего-то я не могу понять, как ее к скрипту пристегнуть...


У кого какие соображения ?
Re: Вывод звука в ProTool
Юрченко Владимир; 31.7.03

Единственный способ из скриптов ProTool общаться с другими программами - через функцию Start_Programm. Можно вызывать Program Files\Windows Media Player\mplayer2.exe с параметрми нужного *.wav. В параметрах можно установить также чтобы приложение было минимизировано, только медиаплеер не закрывется автоматом и при повторном вызове он появляется на экране. Лучше написать на Дельфях программку, которая бы выполняла аналогичную работу и закрывалась.

Re: Вывод звука в ProTool
В. Сорокин.; 31.7.03

Всё очень интересно. Но можно дополнительный вопрос?

Программка FM-Edit: вызываем её упомянутой функцией, не закрываем. А потом, сколько раз вызываем - столько раз она и открывается. А можно-ли, чтобы она повторно не открывалась, а только появлялась, как сказано выше? Очень бы хотелось этого.
Re: Вывод звука в ProTool
Александр Родин, ООО "Нева Электрик"; 31.7.03

выше писалось о поведении Media Player-а... любая другая программка будет себя вести так, как она написана. Например открываться ровно столько раз, сколько ее вызвали.


По любому не очень удобно. Вот если бы можно было в скриптах ProTool-а использовать функции внешних библиотек, как в скриптах WinCC, то цены б ему не было... Но это видимо ограничения встроенного басика. Можно конечно и свою программку написать, тем более что она займет 2 - 3 строчки кода, но как-то ради этого ставить Visual Studio или Delphi не очень хоцца..
Re: Вывод звука в ProTool
Yrok; 1.8.03

Надо написать свою программу (Например на с++) которой прередовать при запуске командную строку которая будет содержать имя файла wav.

в InitInstance
//прописать строчку
//****************
CCommandLineInfo pInfo;
//****************
CWinCCRunDlg dlg;
m_pMainWnd = &dlg;
//прописать строчку
//***************
dlg.m_AppName = pInfo.m_strFileName;
//***************
int nResponse = dlg.DoModal();

В h файле обьявить переменную
типа CString m_AppName;
там же подключаем
#include "mmsystem.h"
далее в настройках проекта в закладке Link в окне Object/Librares modules:
Прописываем winmm.lib, что бы загружалась библиотека.
// далее при запуске в функции
void CWinCCRunDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
// Выделяем память переменной szPath
char* szPath=(char*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,m_AppName.GetLength()+1);
// Копируем значение из одной переменной в другую
strcat(szPath,m_AppName.GetBuffer(m_AppName.GetLength()));
// Проиграть файл
PlaySound(szPath,NULL,SND_FILENAME);
// Освобождаем переменную
HeapFree(GetProcessHeap(),0,szPath);
// Уничтожаем программу (Закрываем её)
this->DestroyWindow();}

Например:
PlaySound("C:\\start.wav",NULL,SND_FILENAME);
Re: Вывод звука в ProTool
В. Сорокин.; 4.8.03

Ко мне тут в выходные сын заглянул. Мою проблему он решил. Кому нужно, пишите - вышлю.


Re: Вывод звука в ProTool
Александр Родин, ООО "Нева Электрик"; 4.8.03

Ну если ваша проблема имеет общую тему с нашей, то может тогда поделитесь опытом ?.. :)


емыл указан вместе с именем..