как заставить мигать?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Skarobey
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 01.06.2002 (Сб) 17:34
Откуда: Russia

как заставить мигать?

Сообщение Skarobey » 04.11.2004 (Чт) 22:04

где-то видел код...
когда надо, мигает значит таскбар(так помоему) окна(ну снизу, типо свернут)
и как выдавать предупреждение по верх всех окон? мсгбокс не повер вылазит(((

Skarobey
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 01.06.2002 (Сб) 17:34
Откуда: Russia

Сообщение Skarobey » 04.11.2004 (Чт) 22:12

забыл
и как воспроизвести звукавой файл? формат неважно, главное чтоб полегче!?

вобщем хочу чтоб прога обратила на себя внимание, буть-то я за компом или рядом!

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 04.11.2004 (Чт) 23:06

звуковой файл воспроизводится API - функцией SndPlaySound.

Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Например: SndPlaySound "C:\test.wav", 3

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Re: как заставить мигать?

Сообщение Ruslan Demidow » 04.11.2004 (Чт) 23:09

Skarobey писал(а):где-то видел код...
когда надо, мигает значит таскбар(так помоему) окна(ну снизу, типо свернут)
и как выдавать предупреждение по верх всех окон? мсгбокс не повер вылазит(((


Самый примитив:
Код: Выделить всё
Private Declare Function FlashWindow Lib "user32.dll" ( _
     ByVal hwnd As Long, _
     ByVal bInvert As Long) As Long


Option Explicit

Private Sub Command1_Click()
    Timer1.Interval = 300
    Timer1.Enabled = True
       
       
End Sub

Private Sub Timer1_Timer()
    Static i As Integer
    FlashWindow Me.hwnd, 1
    i = i + 1
    If i > 4 Then
        i = 0
        Timer1.Enabled = False
    End If
End Sub
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Re: как заставить мигать?

Сообщение Ennor » 05.11.2004 (Пт) 1:08

Skarobey писал(а):...
и как выдавать предупреждение по верх всех окон? мсгбокс не повер вылазит(((

А с чего ты взял, что юзеру нужен твой MsgBox(), если он на другое приложение переключился и занят сейчас совершенно другими вещами? Винда - она, знаешь ли, многозадачная. Вот когда он захочет вернуться к твоей проге, вот тогда он этот мессадж и увидит. До этого момента ему на него - накласть.

Так что не надо вызывать для своего окна SetForegroundWindow(), если у тебя всего лишь сообщение. Юзер и так заметит, более того, в случае появления диалогового окна винда сама прекрасно помигает таскбаром несколько секунд. Не представляешь, как такие попрыгайцы раздражают...

Skarobey
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 01.06.2002 (Сб) 17:34
Откуда: Russia

Сообщение Skarobey » 05.11.2004 (Пт) 9:10

|kerish| писал(а):звуковой файл воспроизводится API - функцией SndPlaySound.

Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Например: SndPlaySound "C:\test.wav", 3

если в томже каталоге, то без пути до рабочего каталога "\test.wav" ?

Dzhon
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 236
Зарегистрирован: 09.12.2003 (Вт) 13:30
Откуда: Россия, Омск

Сообщение Dzhon » 05.11.2004 (Пт) 18:24

Если в том-же каталоге то:
Код: Выделить всё
SndPlaySound app.path & "test.wav", 3

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.11.2004 (Пт) 19:15

Dzhon писал(а):Если в том-же каталоге то:
Код: Выделить всё
SndPlaySound app.path & "test.wav", 3

Забыл проверить App.Path на наличие концевого бэкслэша. Если прога лежит не в корне диска, то получишь примерно такое:
C:\Program Filestest.wav

Dzhon
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 236
Зарегистрирован: 09.12.2003 (Вт) 13:30
Откуда: Россия, Омск

Сообщение Dzhon » 06.11.2004 (Сб) 9:33

Согласен, так лучше?

Код: Выделить всё
SndPlaySound app.path & "\test.wav", 3
[/b]

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 06.11.2004 (Сб) 10:43

Не совсем. Если программа лежит в корне диска, то app.path - уже "C:\". Надо так примерно:

Код: Выделить всё
dim path as string

If Right$(app.path,1)<>"\" Then
path=App.Path & "\test.wav"
Else
path=App.Path & "test.wav"
Endif

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 06.11.2004 (Сб) 11:32

А еще лучше - функцию App.Path заменить чем-то своим:
Код: Выделить всё
Function AppPath$()
If Right(App.Path, 1) = "\" Then AppPath = App.Path Else AppPath = App.Path & "\"
End Function
:)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 06.11.2004 (Сб) 11:44

Да, верно. При частом использовании будет удобнее...

Всего одна поправка:
Код: Выделить всё
Function AppPath$() As String
If Right(App.Path, 1) = "\" Then AppPath = App.Path Else AppPath = App.Path & "\"
End Function


:lol:
Последний раз редактировалось Amed 06.11.2004 (Сб) 13:49, всего редактировалось 1 раз.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 06.11.2004 (Сб) 11:47

Ты про As String? Дык значок $ стоит - уже и не надо :) Она так не будет работать :)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 06.11.2004 (Сб) 13:51

Хм. Вы правы, коллега. :)

Dzhon
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 236
Зарегистрирован: 09.12.2003 (Вт) 13:30
Откуда: Россия, Омск

Сообщение Dzhon » 07.11.2004 (Вс) 9:45

Сенкс! :wink:

Skarobey
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 01.06.2002 (Сб) 17:34
Откуда: Russia

Сообщение Skarobey » 27.11.2004 (Сб) 1:04

:shock:

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 27.11.2004 (Сб) 9:33

Replace(App.path & "\" , "\\" , "\") & "MyFile.wav"


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 15

    TopList  
cron