PDA

Показать полную графическую версию : [решено] Как установить Гаджеты без подтверждения?


Slem X
25-01-2013, 16:02
Привет всем. Подскажите как установить гаджеты через .ват, какие команды или как подругому без подтверждения? Виндовс 7

ruslan...
25-01-2013, 17:37
Slem X,

Кладете гаджет в C:\Program Files\Windows Sidebar\Gadgets и запускаете как обычно.

Slem X
25-01-2013, 21:01
Гаджеты в 7ке запакованы в архив с расширением .гаджет. Решено. Пошел другим путем, распаковал каждый в отдельную папку потом все запаковал в самоизвликающийся архив, указав путь к гаджетов.

LEmiD
26-08-2018, 23:26
Ух упарился писать батник, в итоге всё равно пришлось ставить AutoIt чтоб перебрать с RunWait, но костыли напишу.

rem название гаджета
set gadget=ItsPanel.gadget

rem запуск скрипта упаковки гаджета
cd /d %~d0%~p0
start /wait /d "%~d0%~p0" build_itspanel.exe

md "%LOCALAPPDATA%\Microsoft\Windows Sidebar\Gadgets\%gadget%"

"%~d0%~p07z.exe" x -y -o"%LOCALAPPDATA%\Microsoft\Windows Sidebar\Gadgets\%gadget%" "%~d0%~p0%gadget%"

rem костыль
%LOCALAPPDATA%\Microsoft\Windows Sidebar\Gadgets\%gadget%\bin\_fix.bat

rem перезапуск гаджетов
taskkill /IM sidebar.exe /F
start sidebar.exeупаковщик, мож кому интересно$gfilename = "ItsPanel" ;название файла гаджета
$dirsrc = "ItsPanel_gadget" ;папка распакованного гаджета
$logfile = '~build_log.txt' ;лог 7z

$gadgetxml = $gfilename & "_gadget\gadget.xml" ;путь к конфигурации гаджета (в папке гаджета)
$name="Its Panel" ;название гаджета
$version=@YEAR & "." & @YDAY & "." & @MIN & @SEC
;$version=@YEAR & "." & @MON & "." & @MDAY & "." & @HOUR & "." & @MIN & "." & @SEC
$page="pages/page0.html" ;стартовая страница гаджета

$dirbak = "backup\" ;бэкап упакованого гаджета перред сборкой
$gfilebak = $gfilename & "_bak" & @YEAR & @YDAY & @MIN & @SEC & ".gadget" ;имя бэкапа гаджета

$hFile = FileOpen($gadgetxml, 2)
; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $hFile = -1 Then
MsgBox(4096, "Ошибка", "Невозможно открыть файл: " & @CRLF & $gadgetxml)
Exit
EndIf
FileWriteLine($hFile, "<?xml version=""1.0"" encoding=""utf-8"" ?>" & @CRLF)
FileWriteLine($hFile, "<gadget>" & @CRLF & @TAB & "<name>" & $name & "</name>" & @CRLF)
FileWriteLine($hFile, @TAB & "<version>" & $version & "</version>" & @CRLF)
FileWriteLine($hFile, @TAB & "<hosts>" & @CRLF & @TAB & @TAB & "<host name=""sidebar"">" & @CRLF)
FileWriteLine($hFile, @TAB & @TAB & "<base type=""HTML"" apiVersion=""1.0.0"" src=""" & $page & """ />" & @CRLF)
FileWriteLine($hFile, @TAB & @TAB & "<permissions>full</permissions>" & @CRLF)
FileWriteLine($hFile, @TAB & @TAB & "<platform minPlatformVersion=""0.3"" />" & @CRLF)
FileWriteLine($hFile, @TAB & @TAB & "</host>" & @CRLF & @TAB & "</hosts>" & @CRLF & "</gadget>" & @CRLF)
FileClose($hFile)

FileMove ($gfilename & ".gadget" , $dirbak & $gfilebak , 9 )

RunWait(@ComSpec & " /c" & '7z.exe a -tzip ' & $gfilename & '.gadget .\' & $dirsrc & '\* >' & $logfile , "", @SW_HIDE)
В общем подход создавать .gadget изначально плохая идея.
Установка требует подтверждения намекая на подпись, при этом перед этим гаджет надо закрыть.
И этот при/перед, при закрытии гаджета чаще всего надо запускать по новой потомучто окно подтверждения тоже закрывается.
В общем это долго.

Вторая проблема, невозможно упаковать в .gadget системные папки с именем "Компьютер.{20D04FE0-3AEA-1069-A2D8-08002B30309D}" и приходится запускать .bat вручную из гаджета, что не удобно и опять же долго.
Возможно както можно выполнить .js после установки гаджета, но таких решений не нашлось.

Так что наверно делать гаджет в обычный 7z sfx .exe, сразу решит 2 проблемы.
Только его придётся запускать вручную через меню гаджетов при первой установке.
Но быть может есть какието решения через команду.
Но мне кажется это проще чем тыкать гдето в гаджете кнопку фикса




© OSzone.net 2001-2012