Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: форма в трее Добавлено: 09.10.08 15:47  

Автор вопроса:  Сергей | ICQ: 558230345 
еще вопрос сообществу....
Как можно заставить на VB.NET форму свернутую в трей начать мигать в трее(для привлечения внимания к ней)
Форма открыта модально в этом приложении.

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 09.10.08 16:36
Ты уверен, что она свернута в трей, а не в панель задач?
Если в панель задач, то есть апишки FlashWindow и FlashWindowEx

Ответить

Номер ответа: 2
Автор ответа:
 Фенягz



ICQ: 387437448 

Вопросов: 7
Ответов: 202
 Web-сайт: atauenis.narod.ru/
 Профиль | | #2
Добавлено: 09.10.08 16:46
Думаю, Сергей говорит про иконку в трее.

Ответить

Номер ответа: 3
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 09.10.08 17:02
Если должна мигать иконка, то ее просто надо менять по таймеру =) Думаю, он бы и сам до этого догадался...

Ответить

Номер ответа: 4
Автор ответа:
 Сергей



ICQ: 558230345 

Вопросов: 7
Ответов: 91
 Профиль | | #4 Добавлено: 09.10.08 18:54
возможно я не правильно объяснил...когда сворачиваешь форму, она остается внизу экрана...там же где и например открытые папки проводника...

Ответить

Номер ответа: 5
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #5 Добавлено: 09.10.08 19:19
возможно я не правильно объяснил...когда сворачиваешь форму, она остается внизу экрана...там же где и например открытые папки проводника...

пост №1

Ответить

Номер ответа: 6
Автор ответа:
 Сергей



ICQ: 558230345 

Вопросов: 7
Ответов: 91
 Профиль | | #6 Добавлено: 09.10.08 19:23
неужели в NET нет обертки для этих апишек?

Ответить

Номер ответа: 7
Автор ответа:
 Сергей



ICQ: 558230345 

Вопросов: 7
Ответов: 91
 Профиль | | #7 Добавлено: 09.10.08 20:04
вот нашел в инете.....сейчас попробую!
  1. Imports System.Runtime.InteropServices
  2.  
  3. Public Class FlashWindow
  4.  
  5. Public Enum enuFlashOptions As UInteger
  6. FLASHW_ALL = &H3 ' Flash both the window caption and taskbar button.
  7. ' This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
  8. FLASHW_CAPTION = &H1 ' Flash the window caption.
  9. FLASHW_STOP = 0 ' Stop flashing. The system restores the window to its original state.
  10. FLASHW_TIMER = &H4 ' Flash continuously, until the FLASHW_STOP flag is set.
  11. FLASHW_TIMERNOFG = &HC ' Flash continuously until the window comes to the foreground.
  12. FLASHW_TRAY = &H2
  13. End Enum
  14.  
  15. Public Structure FlashWindowInfo
  16. Public cbSize As Integer
  17. Public hwnd As IntPtr
  18. Public dwFlags As UInteger
  19. Public uCount As UInteger
  20. Public dwTimeout As UInteger
  21. End Structure
  22. Declare Function FlashWindowEx Lib "user32.dll" (ByRef pInfo As FlashWindowInfo) As Boolean
  23.  
  24. Public Sub FlashWindow(ByVal frmForm As Form, _
  25. ByVal FlashWindowInfoFlags As enuFlashOptions, _
  26. Optional ByVal intFlashTimes As UInteger = 5)
  27. If (frmForm.WindowState = FormWindowState.Minimized) Or FlashWindowInfoFlags = enuFlashOptions.FLASHW_STOP Then
  28. Dim info As FlashWindowInfo
  29. With info
  30. .cbSize = Marshal.SizeOf(info)
  31. .dwFlags = FlashWindowInfoFlags ' See enumeration for flag values
  32. .dwTimeout = 0 'Flash rate in ms or default cursor blink rate
  33. .hwnd = frmForm.Handle()
  34. .uCount = intFlashTimes ' Number of times to flash
  35. End With
  36. FlashWindowEx(info)
  37. End If
  38. End Sub
  39. End Class
  40.  
  41. Yes, this is in VB.NET. Get over it.
  42.  
  43. ______________________________________
  44.  
  45. The code to invoke the class is as follows:
  46.  
  47. ' Start flashing the program icon (if form is minimized)
  48.  
  49.  
  50. Dim fwFlash As New FlashWindow
  51.  
  52.  
  53. If Me.WindowState = FormWindowState.Minimized Then
  54. ' Flash minimized window
  55. fwFlash.FlashWindow(Me, FlashWindow.enuFlashOptions.FLASHW_ALL, 9999)
  56. End If

Ответить

Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 09.10.08 20:59
неужели в NET нет обертки для этих апишек?

Да вы,блин, вконец обленились!!! Ну какая тут нафиг обертка??? Неужели так трудно сделать вызов примитивной API?
  1.  
  2. public class Win32
  3. {
  4.     /* API Declare */
  5.     [DllImport("user32.dll")]
  6.     private static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
  7.  
  8.     public static void Flash(IntPtr hWnd)
  9.     {
  10.         FlashWindow(hWnd, true);
  11.     }
  12. }

Ответить

Номер ответа: 9
Автор ответа:
 Сергей



ICQ: 558230345 

Вопросов: 7
Ответов: 91
 Профиль | | #9 Добавлено: 09.10.08 21:31
Уважаемый EROS!
мне больше понравилась функция FlashWindowEx. А она в VB, в отличие от C без некой обертки из структур не очень хочет работать. Я с этим сталкивался еще в VB6. И то, что для опытного сишника элементарно - для меня иногда становится проблемой.
Насколько я понял, FlashWindowEx более управляемая чем просто FlashWindow.
Спасибо огромное за помощь. Она действительно вовремя!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам