Что нового

[Окна, Диалоги] Необходимо спрятать рабочее пространство Windows 7

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
Возникла идея небольшого скрипта, который будет запускаться вместе с системой и прятать рабочий стол и панель пуск.
То бишь оставлять на нем работающие программы + виджеты + какой бы тот ни был *Dock
Спрятать рабочий стол достаточно легко:
Код:
WinSetState("Program Manager","", @SW_HIDE)

Sleep(5000)

WinSetState("Program Manager","", @SW_SHOW)


Но вот спрятать панель пуск у мня не получается. Как я понимаю - панель это простое окно, у которого должен быть хендл либо класс. Но вот ни того ни другого найти не могу.

Пытался работать с классом WorkerW и с классом Shell_TrayWnd. Последний убирает только трей и панель запуска. Пуск остается, и само окно тоже.

Как быть?

P.S. Убийство процесса explorer.exe не предлагать
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 320
Medic84,
У меня на Win XP так скрывает весь.
Код:
$hTrayWnd = WinGetHandle('[Class:Shell_TrayWnd]')
WinSetState($hTrayWnd,'', @SW_HIDE)
Sleep(5000)
WinSetState($hTrayWnd,'', @SW_SHOW)

А так на 7.
Код:
$hPusk = WinGetHandle('[Title:Пуск; Class:Button]')
$hTrayWnd = WinGetHandle('[Class:Shell_TrayWnd]')
WinSetState($hPusk,'', @SW_HIDE)
WinSetState($hTrayWnd,'', @SW_HIDE)
Sleep(5000)
WinSetState($hPusk,'', @SW_SHOW)
WinSetState($hTrayWnd,'', @SW_SHOW)
 
Автор
Medic84

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
Точно. У Win7 просто имеется еще 1 класс. Button
Вобщем такой код работает:
Код:
$hTrayWnd = WinGetHandle('[Class:Shell_TrayWnd]')
$hStartWnd = WinGetHandle('[Class:Button]')
WinSetState($hTrayWnd,'', @SW_HIDE)
WinSetState($hStartWnd ,'', @SW_HIDE)
WinSetState("Program Manager","", @SW_HIDE)
Sleep(5000)
WinSetState($hTrayWnd,'', @SW_SHOW)
WinSetState($hStartWnd ,'', @SW_SHOW)
WinSetState("Program Manager","", @SW_SHOW)
 
Верх