В один прекрасный день я заинтересовался как устроены виндовые гаджеты изнутри.
Гаджет - это такая хрень которая появилась в win7, можно поставить красивые часики или чекер погоды.
Ну вы поняли.
Итак, что же них интересного? Дело в том, что гаджет это html страничка, использующая css и поддерживающая VBA и JScript (не путать с браузерным обрезком).
2 этих скриптовых языка имею весьма широкое применение.
Подробности:
В win7 существует файл "C:\Users\user\AppData\Local\Microsoft\Windows Sidebar\Settings.ini", он отвечает за настройки "sidebar.exe".
Когда вы перетаскиваете гаджет на рабочий стол, в этот файл записываются его настройки, а в реестр прописывается:
Код:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"Sidebar"="C:\\Program Files\\Windows Sidebar\\sidebar.exe /autoRun"
Settings.ini Имеет достаточно банальную структуру,
[Section 1]
PrivateSetting_GadgetName="путь до папки с гаджетом"
PrivateSetting_GadgetOpacity="100" - непрозрачность, установите её в ноль и гаджет станет невидим.
[Hashes] - видимо контрольная сумма, мне кажется это превентивная мера от вирусов, но я не замечал что бы win7 ругалась при её отсутствии.
Инсталляция:
Стандартные гаджеты лежат в "C:\Program Files\Windows Sidebar\Gadgets", но новые складываются в "C:\Users\user\AppData\Local\Microsoft\Windows Sidebar\Gadgets"
Собственно тут напрашивается метод эксплуатации:
1) ставим на авторан "sidebar.exe" - он легален и ав не будет реагировать.
2 )меняем "Settings.ini" или код уже установленного гаджета
Перейдём к практике:
Я взял чей-то гаджет и выкинул из него половину мусора, остался только рабочий каркас.
При запуске sidebar отрисовывал белое поле, даже если html был пустой.
Примерно так:
Тут 2 варианта сокрытия, либо установить непрозрачность в ноль, либо поставить на фон через JS прозрачное изображение.