Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Поверх всего... Добавлено: 14.09.04 00:32  

Автор вопроса:  Reborn
Народ, подскажите, как расположить прогу поверх панели задач ("пуск").

Ответить

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

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 14.09.04 10:36
Никак, т.к. она сама имеет св-во поверх всех... А два окна с одинаковым "приоритетом" будут показаны по очереди... т.е. что сейчас активно то показано и будет...

Ответить

Номер ответа: 2
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #2 Добавлено: 14.09.04 17:05
А если в таймере отслеживать окна получившие фокус (GetForegroundWindow), проверять окно твоей программы или нет, если нет то воспользоваться ф-ей SetWindowPos…

Ответить

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 15.09.04 00:08
1. Это глючно
2. в 2к/ХР это не сработает... там фокус то якобы передается а реально - ничего... только окно начинает "мигать" и требовать реакции пользователя...

Ответить

Номер ответа: 4
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #4 Добавлено: 15.09.04 05:37
sne, я конечно извиняюсь за наглость но у меня все работает.

    Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Private Const HWND_TOPMOST = -1
    Private Const SWP_NOMOVE = &H2
    Private Const SWP_NOSIZE = &H1
    Private Declare Function GetForegroundWindow Lib "user32" () As Long

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


Private Sub Form_Load()
   Me.WindowState = 2
   SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub

Private Sub Timer1_Timer()
   If Me.hWnd <> GetForegroundWindow() Then
        SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
   End If
End Sub

Ответить

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #5
Добавлено: 15.09.04 15:18
Mihalыch, а я извиняюсь за упорство, но это работает до поры до времени ;) я вот сейчас 30 секунд пощелкал туда-сюда, и у меня панель задач вылезла на первое место... Тесть лучше ;)

Ответить

Номер ответа: 6
Автор ответа:
 Reborn



Вопросов: 8
Ответов: 9
 Профиль | | #6 Добавлено: 17.09.04 00:12
Спасибо, человеки, не ссорьтесь я уже все наладил.... :)

Ответить

Номер ответа: 7
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #7
Добавлено: 18.09.04 13:18
Так, для информации: у Winamp'a окно все время поверх пуск'a. WinXP.

Ответить

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 18.09.04 19:05
Да ничего подобного, вот я сейчас опять потыкал поочередно то на винамп, то на панель задач, и он точно так же сдался... теперь вот сижу голову ломаю как его из-под этой панели вытащить ;)

Т.ч. это невозможно, имхо...

Ответить

Страница: 1 |

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



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