Страница: 1 | 2 |
Вопрос: Задачка про динамик (наверное простая)
Добавлено: 18.07.05 16:08
Автор вопроса: mzx | ICQ: 259560026
Проблема в следующем.
Прога отлавливает нажатия горячих клавиш через KeyPress или KeyDown и выполняет действия в зависимости от того в каком текстовом поле горячая клавиша была нажата, окошко там вызывает или еще что. При этом на некоторых компах системный динамик отвратительно бипкает, а так как полей много и приходится часто нажимать горячие клавиши бибканье скоро начинает сильно действовать на нервы. Как сделать чтобы сволочь ента не мешала работать?
1. Выдернуть провода нельзя, корпуса опечатаны.
2. Отключение динамика в Диспетчере устройств: "Системные устройства -> Встроенный динамик" не помогает. Бипкает все равно.
3. Изучение биоса на предмет того где мог бы отключаться динамик результата не принесло.
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #1
Добавлено: 18.07.05 16:13
ну от ентра в текстбоксе я избавлялся так:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0
End Sub
Номер ответа: 2
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #2
Добавлено: 18.07.05 16:23
Или Multiline=True в текстюоксе.
Номер ответа: 3
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #3
Добавлено: 18.07.05 16:41
вместо beep, если всё же нужен, юзать MessageBeep с нужным параметром
Номер ответа: 4
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #4
Добавлено: 18.07.05 17:25
не помогает, бипкает все равно
может можно какой апи-функцией его вырубить, или в виндах руками отключить отличным от вышеописанного способом
кажется эта фигня проявляется на компах на которых нет звуковой карты
Номер ответа: 5
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #5
Добавлено: 18.07.05 17:45
Сколько одновременно нажатых клавиш составляют горячую?
Номер ответа: 6
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #6
Добавлено: 18.07.05 17:48
одна ладонь
Номер ответа: 7
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #7
Добавлено: 18.07.05 17:49
одна Enter
код процедуры проще некуда
Номер ответа: 8
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #8
Добавлено: 18.07.05 18:22
Попробуй отключить системный звук Звёздочка в звуковой схеме.
Номер ответа: 9
Автор ответа:
Apache2
ICQ: 162823477
Вопросов: 31
Ответов: 114
Профиль | | #9
Добавлено: 19.07.05 00:08
вообще-то встроенный динамик начинает бибикать, когда нет звуковой карты.. или отключена служба XP Win Audio... может в биосе порыться нужно и рубануть встровенный динамик?
Номер ответа: 10
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #10
Добавлено: 19.07.05 08:48
да ты че, это ж wav.
Отруби Системный Динамик в устройствах.
Номер ответа: 11
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #11
Добавлено: 19.07.05 10:31
ясно, спасибо за советы
я так понял это вопрос на форум по бивесам
Номер ответа: 12
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #12
Добавлено: 19.07.05 10:40
Не, не по бивесам...
Отключать что-то системное - вообще неправильно.
В MSDN нашёл за 10 секунд.
Summary
In a Microsoft Visual Basic for Windows text box, the ENTER key causes a warning beep to sound only if the MultiLine property is set to False (the default) and the Warning Beep option is selected in the Sound dialog box of the Windows Control panel.
To disable the beep, in the KeyPress event procedure for the text box, set the value of KeyAscii (which is a parameter passed to KeyPress) equal to zero (0) when the user presses the ENTER key.
More Information
Specifically, use an IF statement to trap the ENTER key and the set KeyAscii to zero (0). Setting the value to zero before the event procedure ends prevents Windows from detecting that the ENTER key was pressed and prevents the warning beep. This behavior is by design and is due to the fact that a non-multiline text box is a Windows default class of edit box.
Example
The following code will prevent the beep:
Private Sub Text1_KeyPress (KeyAscii as Integer)
If KeyAscii=13 Then
KeyAscii=0
End If
End Sub
Номер ответа: 13
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #13
Добавлено: 19.07.05 10:50
Если кому интересно на http://sysadmins.ru/ дали такой совет:
Диспетчер устройств. Меню Вид -> Показать скрытые устройства.
В "Драйверы устройств не Plug and Play" отключить устройство Beep.
Блин, век живи - век учись.
Номер ответа: 14
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #14
Добавлено: 19.07.05 10:50
Прекрасно работает, если именно в KeyPress, а не в KeyDown.
Номер ответа: 15
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #15
Добавлено: 19.07.05 10:58
If KeyAscii=13 Then
KeyAscii=0
End If
End Sub
Все равно вызывает сигнал на компах без звуковухи, в частности на серваке который у меня тут стоит.