Task Bar must die!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Task Bar must die!!

Сообщение _Мика_ » 10.12.2004 (Пт) 18:55

Можно какнибудь убрать Task bar, хочу сделать типа как в макинтоши панельки!
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 10.12.2004 (Пт) 19:50

Как вариант, найти окно с классом ToolbarWindow32 и скрыть его api'шкой ShowWindow

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

Сообщение tyomitch » 11.12.2004 (Сб) 0:16

Я просто слал ему WM_CLOSE - работало :-)
Изображение

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 11.12.2004 (Сб) 8:41

Cкрыть:
Код: Выделить всё
Call ShowWindow(FindWindow("Shell_TrayWnd", vbNullString), 0)

Показать:
Код: Выделить всё
Call ShowWindow(FindWindow("Shell_TrayWnd", vbNullString), 1)
الفيجوال بيسك الرابح

Серый
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 06.11.2004 (Сб) 10:51

Сообщение Серый » 11.12.2004 (Сб) 10:29

Сюда же вопрос, как заблокировать кнопку пуск?

Например вот этот код, блокирует только на мышь:
Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Public Sub EnableStartButton(Optional Enabled As Boolean = True)
    Dim lHwnd As Long
    lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString)
    Call EnableWindow(lHwnd&, CLng(Enabled))
End Sub

Private Sub Command1_Click()
    EnableStartButton False
End Sub


А мне хочется блокировать кнопку на клавиатуре

Серый
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 06.11.2004 (Сб) 10:51

Сообщение Серый » 11.12.2004 (Сб) 10:39

Всем спачибо, сам нашёл
Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Form_Load()
PostMessage FindWindow("BaseBar", ""), &H10, 0, 0
End Sub


_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 11.12.2004 (Сб) 12:08

Всем спасибо, ща буду пробовать! :D
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

deepslam
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 286
Зарегистрирован: 19.08.2002 (Пн) 2:25
Откуда: Russia

Сообщение deepslam » 13.12.2004 (Пн) 16:16

люди а как отследить нажатие на клавиатуре кнопки Windows?

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 13.12.2004 (Пн) 16:29

Код: Выделить всё
If (getasynckeystate(vk_lmenu)<>0) or (getasynckeystate(vk_rmenu)<>0) then msgbox "Кнопка windows нажата"

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

Сообщение tyomitch » 13.12.2004 (Пн) 16:38

xolod писал(а):
Код: Выделить всё
If (getasynckeystate(vk_lmenu)<>0) or (getasynckeystate(vk_rmenu)<>0) then msgbox "Кнопка windows нажата"
Неа, мимо :-)
VK_LWIN и VK_RWIN
Изображение

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 13.12.2004 (Пн) 16:57

Точно! Простите за оплошность, этого больше не повториться :lol:
Код: Выделить всё
Const VK_LWIN = &H5B
Const VK_RWIN = &H5C

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 13.12.2004 (Пн) 18:33

Раз уж такая тема....
Вспомнил я былые времена, когда для меня приделом мечтаний было написать прогу, чтоб пуск в центр экрана переместить. Вспомнил я эти времена, написал прогу, и... Облом! Пуск-то на центр экрана я поставил, но он не работает... Не открывается. В чем дело?
В общем, действовал я так: при клике мышкой на Пуске определял его hwnd функцией WindowFromPoint, делал ему
SetParent(hwnd,GetDesktopWindow), а потом - SetWindowPos.....
И пуск перестает работать... А хотелось бы, чтоб находясь в центре экрана он по-прежнему открывался.......
Да, еще вопрос: HWND пуска как найти с помощью FindWindow?
У меня прога показывает, что у него - класс Button, так что по классу у меня не вышло....

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 13.12.2004 (Пн) 18:57

Найти hwnd можно примерно так
Код: Выделить всё
ParentHandle = FindWindow("Shell_TrayWnd", vbNullString)
ButtonHandle = FindWindowEx(ParentHandle, ByVal 0&, "BUTTON", vbNullString)


А насчет SetParent - не знаю.. Пробовать желания нет :)

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

Сообщение Amed » 13.12.2004 (Пн) 19:04

Попробуйте выцепить hwnd главного меню и сделать ему SetParent...
У меня получалось что-то подобное, но очень давно... Не помню уже точно, как. Пойду вспоминать %)

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 13.12.2004 (Пн) 19:18

2 xolod: А чего желания нет? Боишья, так и останется :?: :D :D
Насчет HWND - спасибо.

2 Amed: Да, у меня тоже такая мысль была, скорее всего в этом и дело.

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

Сообщение Amed » 13.12.2004 (Пн) 19:23

Кстати, выцеплять удобнее всего через Spy++, или вот ещё моя разработка чуть ли не четырёхлетней давности есть:
Последний раз редактировалось Amed 13.12.2004 (Пн) 19:31, всего редактировалось 1 раз.

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 13.12.2004 (Пн) 19:28

:D :D :D Вчера точно такую же прогу на С++ написал.
Подвел мышку к "Пуску", и внезапно подумал, а не плохо бы его в центр экрана! :D

deepslam
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 286
Зарегистрирован: 19.08.2002 (Пн) 2:25
Откуда: Russia

Сообщение deepslam » 13.12.2004 (Пн) 23:19

И снова про FlashWindow:
Вы не много не поняли то что мне нужно:
мне нужно определить моргает данное окошко или нет а не заставить его моргать...
Как бы это сделать а?

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 13.12.2004 (Пн) 23:56

Что-то в последнее время задачи интересные пошли.. Одному - запуск свой проги вместа диалога выключения компьютера, тебе - это :)...
ИМХО, никак не определишь, хотя не уверен (ждем tyomitch'a) :wink:

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 14.12.2004 (Вт) 2:18

В общем, действовал я так: при клике мышкой на Пуске определял его hwnd функцией WindowFromPoint, делал ему
SetParent(hwnd,GetDesktopWindow), а потом - SetWindowPos.....

А я помню так Пуск отключал :)
الفيجوال بيسك الرابح

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 14.12.2004 (Вт) 16:27

Ну, отключать это не спортивно :D :D
WM_CLOSE и никаких проблем......
Куда интереснее его в центр экрана, да еще чтоб работал!


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

    TopList  
cron