Active Window Switching with Buttons -- |PP| own Taskbar

Те, кто ей начинают пользоваться, уже не в силах остановиться! Она может все. Или почти все!

Active Window Switching with Buttons -- |PP| own Taskbar

Сообщение Reuben » Пн мар 24, 2003 10:40 am

нижеследующее является вольным переводом
Active Window Switching with Buttons from Powerpro.chm
с различными дополнениями и размышлениями. Я бы положил это куда-нибудь, да временно некуда


Панель переключения между Окнами.

О чем речь идет:

Если Вы хотите создать свою собственную версию Панели Задач ( в дальнейшем именуемой таскбаром) , тогда Вам можно воспользоваться одной из имеющихся у вас панелей Windows PowerPro (а лучше создать новую панель, специально для этой цели, и назвать ее, например, Taskbar) и сделать так, чтобы в этой панели отображались кнопочками все видимые окна запущенных приложений. Как и в обычном таскбаре, щелчок левой кнопкой мыши на кнопке делает соответствующее окно активным, а правый щелчок вызывает меню, предлагающее закрыть или свернуть окно.(Вместо этого можно, конечно, пользоваться повешенным на какой-нибудь хоткей или хотклик меню - списком активных окон, но у панели есть два важных достоинства -- переключение осуществляется за один щелчок, и к тому же все видимые окна перед глазами. Но есть и недостаток -- панель отъедает полезную площадь от Рабочего Стола (то есть Десктопа <!--emo&:)-->Изображение<!--endemo-->) )

Таскбар можно сконфигурировать так, чтобы в нем показывались только иконки (и так вообще-то по-дефолту, то бишь априорно), в тултипах-подсказках будет тогда отображаться заголовок соответствующего окнаб можно, чтобы отображались только минимизированные окна(это если места мало).С другой стороны, можно задать цвет, ширину, шрифт, картинку-фон, команды для щелчка правой и средней кнопкой мышки по кнопке - за настроив все это для специальной, последней в списке невидимой кнопки. Заголовок окна тогда показывается, естественно, надписью на кнопке.Кроме всего прочего, кнопочка для окна переднего плана может изображаться нажатой.

А теперь как все это сделать(Конфигурация, другими словами):

Итак, создав новую панель -- Таскбар, подумайте, какие вы хотите иметь на ней постоянные кнопочки. (например, можно создать кнопочку, написать на ней Start ...<!--emo&:)-->Изображение<!--endemo-->). А теперь сделаем, чтобы на панели отображались активные окна. Входим в меню настройки свойств панели (Для этого, например, нажимаем Ctrl и щелкаем правой кнопкой мыши по панели, в появившемся контекстном меню выбираем Configure Properties. В закладке Bars отмечаем галочкой бокс Bar Size from sum of Buttons, переходим на закладку Active Buttons, и ставим галочку на пункте Show Buttons for Active Windows. В вашей панели, вслед за заданными "вручную" кнопками должны появиться иконки для всех открытых видимых окон.
Теперь для чего нужны другие пункты --

Show Buttons for Tray Icons -- сейчас к нам не относится, это чтобы делать трей. (Делать трей сложнее, нужно править реестр -- по крайней мере в XP или в Win2000, про это будет написано в описании использования PowerPro как Shell-а ).

Active Buttons Show Icons only (No Text Label) -позвольте, но у нас и так только иконки показываются! Этот пункт имеет смысл, если отмечен следующий пункт (и вообще-то их стоило бы поменять местами ) :

Last Item In Caption List is used to Set Up Active Buttons.

Отметьте этот пункт, потом создайте еще одну кнопку в панели, проследите ,чтобы она была последней в списке и главное, не вписывайте ничего для выполнения по левому клику! Оформление этой кнопки будет использоваться для оформления всех кнопок для активных окон, а сама эта кнопка не будет показываться в панели (если пункт Last Item ... used to set... отмечен). Так можно оформить ширину кнопок, их цвет, цвет надписи на них - пишется заголовок соответствующего окна, сколько влезет при данной ширине кнопки и шрифте, -- целиком же заголовки отображается в Тултипах. если вы не хотите, чтобы на кнопках писалось что-либо, как раз отметьте предыдущий пункт.Можно так же задать команды для щелчков провой и средней кнопками мыши -- к сожалению стандартное меню для правого щелчка по кнопке -- Показать/Свернуть/Закрыть при оформлении по последнему элементу списка перестает работать.

Show Button corresponding to active window as pressed. -- Кнопку для окна переднего плана показывать нажатой (термин active window двусмысленен - иногда это синоним visible window, а иногда -- foreground window )

Show only minimized windows as active buttons -- показывать кнопки только для свернутых окон.

Ну и наконец сверху окошко, в котором надо выставить максимальное количество отображаемых активных окон (оно должно быть больше нуля <!--emo&:)-->Изображение<!--endemo--> ) а снизу --поле в которое можно вписать окна с какими заголовками будут (или не будут -- если с тильдой) отображаться кнопками на панели (или окна какого класса, или окна, запущенные какой программой).

Как уже было сказано, с помощью Last Button ...for Setup, можно задать команду для щелчка правой или средней кнопкой мыши для кнопки на таскбаре. Если вы хотите задать какое-либо действие над окном, к которому относится кнопка, назначте как обычно command :*Window, control action - что вы хотите, (Close, Hide, Min, Show, OnTop... ), target: тут надо написать activebar.(Довольно логично также повесить на правый клик меню со списком разных действий с соответствующим окном, в качестве таргета каждый раз указывая activebar).

В начале мы написали, что для таскбара стоит установить режим Bar Size from sum of Buttons, тогда таскбар растет и уменьшается в соответствии с количеством кнопочек на нем, а ширина кнопки, как уже было сказано задается шириной иконки или шириной последней "служебной" кнопки, см. выше. Можно сделать таскбар постоянной ширины, отключив Bar Size from sum of Buttons, и отметив 3D Frame а позицию панели определить как Floated. после этого панель нужно растянуть на нужную ширину , перенести на нужное место, и при желании, сделать Locked, или назначить ему нужную позицию. В этом случае задавать ширину последней "служебной" кнопкой но особо полезно, так как если все кнопки будут заданной ширины, то те что не влезут в фиксированную ширину панели просто исчезнут, в обратном же случае кнопки будут расширяться и сужаться в соответствии с их количеством.

Если У вас какие-либо проблемы с надписями на кнопках (говорят, такое бывает в 95/NT 4)
войдите в Command List|Setup|All Bars. и отметьте бокс "Dynamically update active button text". Тут же можно настроить несколько дополнительных опций :

One Active Button per Task -- до сих пор у нас был скорее не таскбар, а Active Window Bar --
другими словами, все Open/Save диалоги, палитры , висящие панели инструментов, бегунки копирования файлов -- все отображается отдельными кнопками. иногда это удобно, иногда нет. Отметив этот пункт, вы решительно сократите число кнопочек, загромождающих вашу панель и приведете ваш таскбар к виду, который имел обычный до XP-шный таскбар (т.е. без группировки, все документы Worda и окошки Internet Explorera продолжают представляться отдельными кнопками -- для группировки необходимо применять отдельные усилия, см. ниже)
Другой способ уменьшить количество кнопок в таскбаре -- дописать к списку окон, который вы хотите/ не хотите видеть в таскбаре (это, как мы помним, в |Properties|Active Buttons|) ", nodialog" -- и любые конфигурационные диалоги перестанут появляться в таскбаре, в частности все окна pproconf -- они все конфигурационные диалоги.

Click Active Button for Foreground to minimize it - Сворачивать окно переднего плана по нажатию соответствующей кнопки.

Sort Active Buttons for Caption -- сортировать кнопки на панели согласно заголовкам в алфавитном порядке. (контролировать порядок сортировки можно еще боксом в соседней закладке All Bars and Menues )

Show Tray Iconized Windows on active buttons -- опять-таки мешать трей с таскбаром.
(и опять "родственный" бокс есть на соседней закладке All Bars and Menues:
List of captions of hidden windows to be shown on active buttons and active menus - тут можно вписать, какие окна показывать в трее, даже если вы их "случайно" скрыли <!--emo&:)-->Изображение<!--endemo-->)

Еще в All Bars and Menus:
Omit these strings for active buttons ... -- а тут вы можете задать окна, которые PowerPro ни при каких обстоятельствах не будет считать активными.

Еще в All Bars and Menus:
Use timer for active/caption bars - отметьте этот бокс, если ваш таскбар начинает время от времени зависать -- некоторые программы мешают PowerPro автоматически обновлять список активных окон.

Наконец, если вы хотите поменять иконки, отображаемые в таскбаре для тех или иных програм, создайте Command List, в котором заголовки соответствуют запускаемым програмам (=exename), а иконки выставьте такие, какие вам для данной программы потребны. остальные поля оставьте пустыми. Теперь в Command List|Setup|Special Lists в боксе Active проставьте ваш лист.
------------------------------------
Дальнейшее уже совсем не имеет отношения к хелпу, а описывает мой собственный опыт создания группировки окон , запущенных одним приложением, но в разных процессах. Я не знаю, как это делать в общем случае, но, в конце концов, виновники захламления таскбара известны: это Internet Explorer и компоненты Microsoft Office, например Word. Я не пользуюсь Internet Explorer, по-этому далее речь пойдет о Wordе.

1.Для начала сделаем, чтобы в таскбаре не отображались окна Worda :
в |Properties|Active Buttons| only include windows... вписываем ~ =winword

2.Создаем новый Command List, назовем его, например, WordBar, чтобы отслеживать в нем окна worda -- |Properties|Active Buttons| only include windows... вписываем *Microsoft Word* и отмечаем Show Duttons for Active Windows.
Теперь у нас есть два тулбара, один для документов Word, один для всего остального.
Осталось их как нибудь склеить -- например сымтировать XP-шный тулбар.

3. Сделаем кнопку в WordBare, назовем ее, например, List_, в качестве "левого" действия назначим *Format StartSubbar.

4.Сделаем еще одну кнопку для форматирования кнопок для октивных окон, зададим ширину.

5. В WordBar войдем в настройку |Properties|Bars| и отметим Vertical Bar, Topmost, Bar size from sum of buttons. Slide direction for Show выставим from button, если конечно таскбар у нас внизу. Position -- floating, Hide After --500 ms (например).

6. В таскбаре создадим кнопку(не последнюю!!), назовем ее, например, Word, и на левый клик по ней повесим *Bar SelectSubBarToMouse WordBar@List_ .
Все почти готово, осталось только научиться прятать кнопку для Worda когда тот не запущен.
Для этого:

7. создадим следующий скрипт:
wordcheck.powerpro
Код: выделить все

  if (anywindow  "*Microsoft Word*") Do

     format item item 2 list "TaskBar" hide 0

         Else

            format item item 2 list "TaskBar" hide 1

         Endif   


В принципе, этот скрипт можно посадить на таймер, или вписать в Monitor (Это такой Command List, который запускается на исполнение каждые две секунды).
Но я не люблю частые таймеры, от них все мерцает и другие скрипты плохо работают. Разумней запускать этот скрипт, когда Word запускается, а потом когда он закрывается.

8.Для первого в |Command Lists |Setup|Special Lists| Open: надо вписать имя листа, (предварительно его создав) в котором по заголовкам окон задаются действия при их появлении.
в этом Open- листе создаем элемент под именем *Microsoft Word* и вкачестве "Левого" действия прописываем .wordcheck

9.К сожалению, специального листа, выполняемого при закрытии окон, нет, но поскольку я обычно закрываю окна Worda, щелкая по крестику, то просто повесил .wordcheck на leftclose в окне Worda. На случай если я закрою Word каким-нибудь другим образом, и кнопка Word останется болтаться в таскбаре, я повесил средним кликом по этой кнопке тот же .wordcheck.
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение dAnIK SeNT » Пн мар 24, 2003 12:54 pm

Не против, если я себе на страничку выложу?
яНЯЕД ОН СОПЪФЙЕ: Athlon 64 X2 5200+ @2,86GHz / nF 570 SLI (ASUS M2N SLI Deluxe) / 4 Gb RAM (4x1Gb Kingston) / 2,9Tb SATAII (0,50+0,64+0,75+1,00Tb WD) / ASUS 8800 GTS512 / 2x NEC-Optiarc AD-7173 / Thermaltake ToughPower 650W / 2x30W Microlab Solo-2 / 20" LCD Benq FP202W (wide) / openSUSE 11.1 / KDE 4.2.1
<!--coloro:Navy--><span style="color:Navy"><!--/coloro-->оН БЯЕЛ БНОПНЯЮЛ - Б email. б ICQ ОНЪБКЪЧЯЭ ПЮГ Б ОНКЦНДЮ.<!--colorc--></span><!--/colorc-->
dAnIK SeNT
Маршал
 
Сообщений: 5101
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: яяяп
Пункты репутации: 0

Сообщение Reuben » Пн мар 24, 2003 1:02 pm

Абсолютно не против, а то для форума как-то длинновато <!--emo&:)-->Изображение<!--endemo-->
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение dAnIK SeNT » Пн мар 24, 2003 1:26 pm

ок.
яНЯЕД ОН СОПЪФЙЕ: Athlon 64 X2 5200+ @2,86GHz / nF 570 SLI (ASUS M2N SLI Deluxe) / 4 Gb RAM (4x1Gb Kingston) / 2,9Tb SATAII (0,50+0,64+0,75+1,00Tb WD) / ASUS 8800 GTS512 / 2x NEC-Optiarc AD-7173 / Thermaltake ToughPower 650W / 2x30W Microlab Solo-2 / 20" LCD Benq FP202W (wide) / openSUSE 11.1 / KDE 4.2.1
<!--coloro:Navy--><span style="color:Navy"><!--/coloro-->оН БЯЕЛ БНОПНЯЮЛ - Б email. б ICQ ОНЪБКЪЧЯЭ ПЮГ Б ОНКЦНДЮ.<!--colorc--></span><!--/colorc-->
dAnIK SeNT
Маршал
 
Сообщений: 5101
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: яяяп
Пункты репутации: 0

Сообщение Saver » Пн апр 28, 2003 11:07 am

Вопрос по
щелкая по крестику, то просто повесил .wordcheck на leftclose в окне Worda

У меня не получаеться почему это сделать. Если я вешаю в Keys/Mouse на Left close .check то не закрывается окно Word. А если повесить второй командой *Script RunFile .Check то ничего не происходит хотя если в скрипт добавить Meassage то сообщения появляються. Помогите решить проблему.
"Боишся? Не делай! Сделал? Не бойся!"
Saver
Прапор
 
Сообщений: 63
Зарегистрирован: Ср мар 26, 2003 2:04 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение Reuben » Пн апр 28, 2003 1:10 pm

У меня не получаеться почему это сделать. Если я вешаю в Keys/Mouse на Left close .check то не закрывается окно Word.

Допиши в конце щелчок мышки <!--emo&:)-->Изображение<!--endemo-->
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Saver » Пн апр 28, 2003 1:52 pm

Допиши в конце щелчок мышки

Это что-то вроде этого *Windows Close Active
To Reuben Подскажи пожалуйсто как правильно сделать эту фишку про закрытие ворда. Что-то я не понимаю
"Боишся? Не делай! Сделал? Не бойся!"
Saver
Прапор
 
Сообщений: 63
Зарегистрирован: Ср мар 26, 2003 2:04 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение Reuben » Пн апр 28, 2003 2:12 pm

Код: выделить все



    if (anywindow  "*Microsoft Word*") Do

       format item item 2 list "TaskBar" hide 0

         Else

            format item item 2 list "TaskBar" hide 1

         Endif    

mouse leftclick





То есть посылаешь команду "обновить кнопку", а потом посылаешь, натурально, щелчок левой кнопкой мыши, что естественно и приводит к закрытию окна, благо мышь стоит на крестике
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Saver » Пн апр 28, 2003 2:43 pm

to Reuben Извини или я тупой или я что не понимаю. С открытием ворда все нормально появляеться кнопка, все нормально но когда закрываю ворд кнопка не исчезает, а весит по прежнему. Для проверки добавил сообщения в скрипт
Код: выделить все

if (anyWindow "*Microsoft Word*") do

   Format item item 2 list "Tascbar" hide 0

   Message Пропал

Else

   Format item item 2 list "Tascbar" hide 1

   Message Появился

   mouse leftclick

EndIF


Проверка на закрытие весит на left close *Microsoft Word* .checkscript. При закрытии появляеться сообщение "Появился",следовательно в или не попадает. Как правильно повесить скрипт закрытия ворда.?
"Боишся? Не делай! Сделал? Не бойся!"
Saver
Прапор
 
Сообщений: 63
Зарегистрирован: Ср мар 26, 2003 2:04 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение Reuben » Чт май 01, 2003 12:28 pm

даже не знаю, чем тебе помочь, на всякий случай вот мой скрипт на leftclose везде:
Код: выделить все

if( select(window( "exename", "under"),-7) eq "WINWORD") Do

  window close  under

  Wait  2

   if (anywindow  "*Microsoft Word*") Do

       format item item 2 list "TaskBar" hide 0

         Else

            format item item 2 list "TaskBar" hide 1

         Endif    



Elseif ((window( "caption", "under") eq   "ABBYY Lingvo") or (window( "class", "under") eq "TTOTAL_CMD") or (select(window( "caption", "under"),8) eq  "EditPlus")  ) Do

  window traymin under

Else do

   mouse l

endif

.setfreememicon




кстати, а что у тебя происходит, когда у тебя открыто несколько окон ворда и ты закрываешь одно из них?[/code]
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0


Вернуться в Windows PowerPro

Кто сейчас на форуме

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

cron