В приложении Access, вывод системных сообщений, а так же вывод сообщений посредством метода docmd.MsgBox должен сопровождаться сигналом динамика системного блока. В настоящее время этого не происходит.
Вроде простая отдельная задача.
Скажите, а какие планы по этой задаче?
(In reply to comment #2) > Скажите, а какие планы по этой задаче? > В течение месяца ошибка будет рассмотрена и, по возможности, исправлена.
Есть сложности с тем, что вывод звука это по сути привилегированная операция, и так просто сделать это не получится. * Консольная функция Beep просто выводит \a в stdout * MessageBeep, если звук не выключен системным параметром SPI_GETBEEP, вызывает USER_Driver->pBeep() - причём не передавая параметр высоты звука. Эта Beep реализована в keyboard.c как XBell(thread_display(), 0); Таким образом всё сводится к тому, какие средства в X Window мы имеем для воспроизведения системного звука. Потому что иначе придётся делать через etersafe (потому как он имеет достаточные привилегии для работы с PC Speaker), а это не будет работать для терминальных серверов.
Существуют ли какие-нибудь изменения планов по данной задаче?
Предлагаю исследовать, какие возможности нам даёт Иксовый XBell (man XBell), работает ли это вообще. И хорошо бы вообще багу воспроизвести, потому что всё же реализовано уже. Вторым этапом надо добавить возможность указание высоты и длительности звука. Для этого X11DRV_Beep и прочие должны принимать все необходимые параметры.
Created attachment 458 [details] Тестовая программа с MessageBeep теперь воспроизводит звук через спикер
Будет в сборке 1.0.9-alt6
Вчера (04.08.2008) загрузил и поставил сборку 1.0.9 на Ubuntu 7.10. Создал ситуацию вывода системного сообщения от Access (Office XP). Сигнала системного динамика не было. На загрузке была выложена еще пока версия не alt6, или я просто не смог что-то правильно настроить?
to amorozov@: приложи пожалуйста сюда тестовую программу в исходнике и в виде EXE-файла.
Created attachment 640 [details] Тестовая программа
Скачал. Запустил файл exe из под Wine. Тишина.
А если перед запуском сделать xset b?
Сделал. Звук включен. Результат: fixme:msnet:MSNET32_57 (0x0000 0x000a (nil) 0x0000 0x33f7f6): stub fixme:msnet:MSNET32_57 (0x0000 0x000a 0x33f794 0xfc940000 0x33f7f6): stub err:service:RPC_Init RpcServerListen failed with error 1714 err:wineboot:start_services_process Unexpected termination of services.exe - exit code 1714 Кстати, не подумал сразу на всякий пожарный уточнить. У меня версия SQL. На случай если вдруг тут могут быть какие-то различия ...
Это пишется в консоли при запуске, а сигнала системного динамика по прежнему нету?
Имеется в виду, что "xset b" в консоли выполнил. Затем с консоли запустил экзешник тестовой программы. Результат, отображенный в консоли был следующим: fixme:msnet:MSNET32_57 (0x0000 0x000a (nil) 0x0000 0x33f7f6): stub fixme:msnet:MSNET32_57 (0x0000 0x000a 0x33f794 0xfc940000 0x33f7f6): stub err:service:RPC_Init RpcServerListen failed with error 1714 err:wineboot:start_services_process Unexpected termination of services.exe - exit code 1714
Created attachment 644 [details] Тестовая программа для Linux, воспроизводящая звук через спикер А эта программа какой-нибудь звук издаёт?
Как выяснилось последняя тестовая программа тоже не издавала никакого звука. По той простой причине, что в блоке напрочь отсутствовал системный динамик. Динамик поставил. Звук появился. На виндовой тестовой программе появился тоже. При системных сообщениях от Access звука нет. Установлена версия 1.0.9.
А какая версия Access?
Office 2000
Вот такой макрос работает в Excel 2000 в 1.0.9: Public Declare Function MessageBeep Lib "user32" _ (ByVal wType As Long) As Long Sub Макрос1() MessageBeep (&HFFFFFFFF) End Sub В Access проверить пока не получилось, так как при открытии или создании базы выдаётся сообщение об ошибке при установлении связи с сервером OLE или элементом управления ActiveX.
Попробовал воспроизвести проблему с другой версией Access. В бутылке mso2003 Access не запускается: [wine@cellar OFFICE11]$ ww MSACCESS.EXE err:service:RPC_Init RpcServerListen failed with error 1714 err:wineboot:start_services_process Unexpected termination of services.exe - exit code 1714 В бутылке mso97 Access тоже не запускается. Выдаёт ошибку, что нет файла system.mdw. http://bugs.etersoft.ru/show_bug.cgi?id=1133 При запуске Access XP (бутылка mibofficexp) появляется сообщение об ошибке. При нажатии на OK оно появляется снова и до самого Access добраться не даёт.
После исправления Антоном установки OfficeXP (#610) можно попробовать продолжить работу над багой.
Добавил в Access к команде Msgbox предварительно Beep. Сигнал идет.
2 Илья MessageBeep работает, но вывод сообщений посредством метода docmd.MsgBox не сопровождается сигналом динамика системного блока.
Ну если он хоть как-то может издаваться - этого лично мне уже достаточно. Спасибо.
Предлагаю издавать звуковой сигнал через MessageBeep (n) при наличии в uType MB_ICONEXCLAMATION MB_ICONSTOP MB_ICONERROR MB_ICONHAND Остаются ещё эти, на которые не реагируем: MB_ICONINFORMATION MB_ICONASTERISK MB_ICONQUESTION MB_ICONWARNING
Сделал коммит, будет в 1.0.10 commit a8b85b47012bbbd3a7c651b4a0d8c7b451a08efe Author: Vitaly Lipatov <lav@etersoft.ru> Date: Thu Dec 4 21:10:42 2008 +0300 USER32: call MessageBeep according to MessageBox style +++ b/dlls/user32/msgbox.c @@ -531,6 +532,11 @@ INT WINAPI MessageBoxIndirectW( LPMSGBOXPARAMSW msgbox ) EnumThreadWindows(GetCurrentThreadId(), MSGBOX_EnumProc, (LPARAM)&threadWindows); } + beepStyle = msgbox->dwStyle & + (MB_ICONEXCLAMATION|MB_ICONSTOP|MB_ICONERROR|MB_ICONHAND); + if (beepStyle) + MessageBeep(beepStyle); + ret=DialogBoxIndirectParamW(msgbox->hInstance, tmplate,