Вывод звука в 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
Ну если ваша проблема имеет общую тему с нашей, то может тогда
поделитесь опытом ?.. :)
емыл указан вместе с именем..