beep

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

beep

Сообщение 13GHOST » 12.09.2006 (Вт) 19:21

как сделать так чтобы во время сигнала внутренним данамиком программа не "зависала". Пробывал API beep но форма при этом зависает
заранее спасибо

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.09.2006 (Вт) 19:22

бипать отдельным тредом ;-)
Изображение

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 12.09.2006 (Вт) 20:27

После Beep -> DoEvents
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.09.2006 (Вт) 20:29

vvs_adm писал(а):После Beep -> DoEvents

Это шутка такая?
Lasciate ogni speranza, voi ch'entrate.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 12.09.2006 (Вт) 21:12

Почему шутка? Смотря что ему надо. Зависать во всяком случае не будет, но при перемещении к примеру формы за заголовок конечно пищать сааавсем плохо будет.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 12.09.2006 (Вт) 22:28

vvs_adm
отсыпь, а :? (ну или перечитай топик)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 12.09.2006 (Вт) 22:41

Блин, я конечно не спавши с воскресенья, но:
Код: Выделить всё
Do
    Beep 100,100
Loop While True
Форма виснет.
Код: Выделить всё
Do
    Beep 100,100
    DoEvents
Loop While True
Форма не виснет.
Автору вопроса нужно, что бы форма не висла во время пищания. Во что я никак не въезжаю?
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.09.2006 (Вт) 22:43

Второй параметр сделай 1000, к примеру.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 12.09.2006 (Вт) 22:47

Да уж дошло, что имелось в виду... Я просто всегда циклом пищалку врубаю с короткой длительностью. Так она на нервы действует сильнее и разбудить даже может.

P.S.: и даже будит :)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 13.09.2006 (Ср) 1:08

а ты вместо цыкла таймер юзай 8)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.09.2006 (Ср) 1:10

Бяка, а это как относится к обсуждаемой теме?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 13.09.2006 (Ср) 1:13

Ну если я, то я ее таймером и юзаю.
Начать пищать -> tmrBeeper.Enabled=True
Заглохнуть -> tmrBeeper.Enabled=False
Очень удобно.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 13.09.2006 (Ср) 1:34

GSerg см. здесь
vvs_adm писал(а):Ну если я, то я ее таймером и юзаю.
Начать пищать -> tmrBeeper.Enabled=True
Заглохнуть -> tmrBeeper.Enabled=False
Очень удобно.

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Сообщение 13GHOST » 13.09.2006 (Ср) 6:37

Может как нить по другому пропищать? А то Beep всегда виснет, хоть DoEvents хоть нет его

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.09.2006 (Ср) 6:51

Есть библы от сторонних разработчиков, которые реализуют 2 функции. SetBeep и StopBeep.

Соответсвенно биип продолжается между вызовами двух этих функций, и соответсвенно задержка на вызовы этих функций мала и не зависет от длительности бипа.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Сообщение 13GHOST » 13.09.2006 (Ср) 6:57

а без сторонних библов никак нельзя?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.09.2006 (Ср) 7:22

Можно. Ответ был дан во втором посте.
Lasciate ogni speranza, voi ch'entrate.

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Сообщение 13GHOST » 13.09.2006 (Ср) 8:01

Я же говорю DoEvents не помогает решить данную проблему

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 13.09.2006 (Ср) 8:08

в каком месте второго поста DoEvents?
Весь мир матрица, а мы в нем потоки байтов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.09.2006 (Ср) 12:24

13GHOST
Тебе сказали, вызывать Beep из другого потока.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Сообщение 13GHOST » 13.09.2006 (Ср) 14:24

мм...эээ... это как? :oops:

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 13.09.2006 (Ср) 14:48

О многопоточности на VB здесь говорено достаточно много, стоит поюзать Поиск.
Весь мир матрица, а мы в нем потоки байтов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 14.09.2006 (Чт) 12:17

13GHOST
Если на слово многопоточность такая реакция:
:shock:


То напиши отдельный ЕХЕшник который делает самый обыкновенный Биип, и запускай его Shell-ом из основного.

Ты увидешь, что тогда бееп не будет тормозить твой процесс. Это значит что Beep выполняется в другом потоке, другого процесса.

Можно обойтись без второго ЕХЕшника, юзая "многопоточность".

Но, опять же если
:shock:

то может быть стоит обойтись вариантом с двумя EXE, хоть это и криво и некрасиво.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 115

    TopList