PDA

Показать полную графическую версию : [решено] Автоматизация создания панели Quick Launch в Windows 7


Smarty
07-11-2010, 19:05
Господа программеры!
Такая вот задачка вышла...
Есть сомнение, что простым CMD\BAT-ником этот вопрос не решить.

Процесс создания вручную описан у нас здесь (http://www.oszone.net/8665/#1), автоматизации же процесса не видел нигде!
Возможно ли это средствами AutoIt в принципе?

Смысл этого такой - автоматическое создание панели при установке системы.

Спасибо.

Bodya.N
08-11-2010, 23:06
Где-то примерно так
;#include <Process.au3>

Global $Title='Новая панель инструментов - Выбор папки'
$String='%appdata%\Microsoft\Internet Explorer\Quick Launch'
; $file='Windows6.1-KB979155-x86.msu' ;Файл должен находиться рядом со скриптом

;FileCopy ( @ScriptDir & '\' & $file, @WindowsDir & '\Temp',1 )
;_RunDos("start /wait wusa.exe %Windir%\Temp\Windows6.1-KB979155-x86.msu /quiet /norestart")
;FileDelete ( @WindowsDir & '\Temp' & '\' & $file )

MouseClick ( "Right", 0, 6000, 1);Вызываем контекстное меню Панели задач
Send("{DOWN}")
Send("{Right}")
Send("{UP}");Переходим к строчке "Создать панель инструментов"
Send("{Enter}")
WinWait ( $Title)
WinActivate($Title)
WinWaitActive ( $Title);Дожидаемся окна "Выбора папки"
ControlSend($Title, "", "", $String);Вводим путь к "Quick Launch"
ControlClick ( $Title, "", "[CLASS:Button; INSTANCE:1]" );Жмем "Выбрать"
MouseClick ( "Right", 0, 6000, 1);Вызываем контекстное меню Панели задач после создания "Quick Launch"
Send("{UP 2}");Переходим к строчке "закрепить панель задач"
Send("{Enter}");Снимаем галочку
ControlClick ( "", "Quick Launch" , "[CLASSNN:ToolbarWindow323]", "right" );Вызываем контекстное "Quick Launch"
Send("{DOWN 3}");Переходим к строчке "Показывать подписи"
Send("{Enter}");Снимаем галочку
ControlClick ( "", "Quick Launch" , "[CLASSNN:ToolbarWindow323]", "right" )
Send("{DOWN 4}");Переходим к строчке "Показывать заголовок"
Send("{Enter}");Снимаем галочку
ControlClick ( "", "Quick Launch" , "[CLASSNN:ToolbarWindow323]", "right" )
Send("{UP 2}");Переходим к строчке "закрепить панель задач"
Send("{Enter}");Закрепляем Панель задач

Smarty
09-11-2010, 07:14
Bodya.N, ОК, панель создается.
Как теперь решить второй этап задачи?
Панель появляется около часов, как и должно быть.
Можно ее переместить к кнопке Пуск и убрать опции "Показывать подписи" и "Показывать заголовок"?

Bodya.N
09-11-2010, 23:41
Smarty убрать опции "Показывать подписи" и "Показывать заголовок" »в скрипте реализовано(обновил скрипт,добавил коментарии) у меня работает,главное чтобы панель еще небыла создана иначе действия скрипта непредсказуемы.Но так как (я думаю) скрипт будет отрабатывать при первом входе в системуавтоматическое создание панели при установке системы. »,то проблем возникнуть не должно(для уверенности можно добавить блокировку мыши и клавиатуры).
А вот переместить к кнопке Пуск »"пока" под вопросом ,можно ли вообще это сделать средствами AutoIt .Будем думать...

Smarty
10-11-2010, 06:51
Bodya.N, :ok:

Bodya.N
12-11-2010, 21:54
Вообщем Smarty вот такое наколдовал
#NoTrayIcon

#include <Misc.au3>

Global $Title='Новая панель инструментов - Выбор папки'
$String=' %appdata%\Microsoft\Internet Explorer\Quick Launch'

If @OSType="WIN32_NT" Then BlockInput(1)

;========================================================================================
;========================== Создание Панели =============================================
;========================================================================================

MouseClick("Right",0,6000,1)
Send("{DOWN}")
Send("{Right}")
Send("{UP}")
Send("{Enter}")
WinWait($Title)
WinActivate($Title)
WinWaitActive($Title)
ControlSend($Title,"","Edit1",$String)
ControlClick($Title,"","[CLASS:Button; INSTANCE:1]")
MouseClick("Right",0,6000,1)
Send("{UP 2}")
Send("{Enter}")

;========================================================================================
;========================== Операции по перемещению Панели ==============================
;========================================================================================

$coords=WinGetPos("","Выполнение приложений")
_MouseTrap($coords[0],$coords[1])
MouseDown("left")
MouseMove($coords[0],$coords[1]-42)
MouseUp("left")
MouseMove(0,0)
Sleep(500)
MouseClick("right")
Send("{DOWN 3}")
Send("{Enter}")
Sleep(500)
$coords2=ControlGetPos("","Выполнение приложений","[CLASS:MSTaskListWClass; INSTANCE:1]")
_MouseTrap($coords2[0]-10,$coords2[1]+@DesktopHeight-70)
Sleep(1000)
MouseDown("left")
Sleep(500)
MouseMove($coords2[0]-10,$coords2[1]+@DesktopHeight,60)
MouseUp("left")
MouseClick("left",$coords2[0]-10,$coords2[1]+@DesktopHeight-70,2)
MouseMove($coords2[0]-10,$coords2[1]+@DesktopHeight-10,60)
MouseDown("left")
MouseMove($coords2[0]+50,$coords2[1]+@DesktopHeight-50,60)
MouseMove($coords2[0]-10,$coords2[1]+@DesktopHeight-70)
MouseUp("left")
MouseDown("left")
MouseMove($coords2[0]-10,$coords2[1]+@DesktopHeight,60)
MouseMove($coords[0],$coords[1]-42)
MouseUp("left")
MouseDown("left")
MouseMove($coords[0],$coords[1])
MouseUp("left")

;========================================================================================
;========================== Настройка Панели ============================================
;========================================================================================

ControlClick("","Quick Launch","[CLASSNN:ToolbarWindow323]","right")
Send("{DOWN 3}")
Send("{Enter}")
ControlClick("","Quick Launch","[CLASSNN:ToolbarWindow323]","right")
Send("{DOWN 4}")
Send("{Enter}")
ControlClick ("","Quick Launch","[CLASSNN:ToolbarWindow323]","right")
Send("{UP 2}")
Send("{Enter}")

;========================================================================================

BlockInput(0)
Тестировал на WIN 7 (7600) при разных разрешениях экрана.

Smarty
12-11-2010, 22:00
Bodya.N, #include <Misc.au3> хде? :o

Bodya.N
12-11-2010, 22:17
В папке "Include" каталога с установленной AutoIt (у меня 3.3.6.1).Если вдруг нету прикрепляю (для работы скрипта нужно чтобы лежала либо в "Include" либо рядом со скриптом)

Smarty
12-11-2010, 22:30
Bodya.N, получилось что-то типа макроса, да?
Боюсь при установке системы этот скрипт не отработается...
Но, всё равно - спасибо за потраченное время!
Надо искать какой-то другой путь или бросить затею...

В конце концов, отрицательный результат - тоже результат! ;)

Bodya.N
12-11-2010, 22:44
при установке системы » нет,а вот при первом входе можно.Только вот не очень красиво будут выглядеть все эти манипуляции...
Взаимно спасибо за понимание и поддержку в решении вопроса.Может когда-нибудь кому-нибудь сгодится.

Smarty
12-11-2010, 22:51
Вопрос решен простейшим способом - нашелся твик реестра!

МИШАНЧИК
02-04-2011, 01:48
Smarty,
Вопрос решен простейшим способом - нашелся твик реестра! »
Поделитесь твиком пожалуйста.

sov44
16-02-2013, 14:35
Поделитесь твиком пожалуйста. »
Актуально :)

rizz
22-07-2013, 00:03
Вопрос решен простейшим способом - нашелся твик реестра! »
Привет, весь инет облазил, ничего подобного не нашел, везде вручную,
или имелось ввиду дальнейшая настройка вида (рядом с кнопкой "Пуск") уже после отображения Quick Launch с помощью AutoIt?

Хочется, чтобы, Quick Launch автоматически настраивался, сканеры реестра ничего не находят, куда он пишет что Quick Launch добавлен вручную?
не в файлы же, полюбому в реестр

p.s. без Quick Launch и классического меню "Пуск" Windows 7 потеряла функционал, Quick Launch свёрнутый и занимает немного места при любом количестве значков, а в панель задач все значки не влезают, да и для активных программ места не остается

сторонние программы не вариант

vitbomba
27-07-2013, 00:17
Поделитесь твиком пожалуйста. »
Тоже ищу такой твик.

Vlad_2009
30-01-2017, 14:57
На дворе Win'10, а панель все также востребована. Ну очень неудобно без нее...
Есть ли на сегодняшний день решение проблемы?

Вопрос решен простейшим способом - нашелся твик реестра! »
Написать такое и не выложить твик - это просто свинство. :(

Vlad_2009
30-01-2017, 16:44
Короче, сам нашел решение проблемы. Поделюсь со всеми вами.
Quick Launch пропадает из-за стандартной языковой панели Windows. Стоит ее открепить или вообще скрыть и Quick Launch больше не пропадает.

Скрыть стандартную языковую панель: по панели задач правой кнопкой мыши - Параметры - Главная - Время и язык - Регион и язык - Дополнительные параметры даты и времени, региональные параметры - Язык - Дополнительные параметры - Параметры - Языковая панель -> выбрать "Скрыта".

Но совсем без языковой панели очень неудобно, но есть решение - использовать Punto Switcher - https://yandex.ru/soft/punto/win.
Автопереключение можно отключить и использовать программу только как языковую панель.
Если ранее были сделаны настройки стандартной языковой панели - они сохраняются.




© OSzone.net 2001-2012