View previous topic :: View next topic |
Author |
Message |
Paranoik
Joined: 05 Oct 2006 Posts: 9
|
(Separately) Posted: Sat Sep 29, 2007 17:15 Post subject: Помогите запустить скрипты от Вахмурки |
|
|
Помогите запустить скрипты от Вахмурки.
Вроде все плагины нужные стоят. А не работает Ж(
TC 7.02a
WinXP SP2
PowerPro 4.7.07
Установленные плагины для PPro
Code: | au.dll
AutoItDLL.dll
childwin.dll
class.dll
clip.dll
date.dll
event.dll
file.dll
float.dll
float2.dll
ini.dll
int64.dll
map.dll
math.dll
menu.dll
miscplugin.dll
mousegesture.dll
note.dll
pcre.dll
pcreposix.dll
regex.dll
sample.dll
tc.dll
vec.dll
volume.dll
win.dll |
HighLightCurrentTab
Описание Выделяет текущую вкладку цветом или снимает выделение
Параметры "1" - выделить текущую вкладку
"0" - убрать выделение
Code: | local hwnd = win.handle("c=TTOTAL_CMD")
local Panel = ifelse(tc.active(hwnd) == "left", 2, 3)
local TMP = childwin.handle(hwnd, "TMyPanel", Panel)
local TMTC = childwin.handle(TMP, "TMyTabControl")
local CurTab = win.sendmessage(TMTC, 4875, 0, 0)
win.sendmessage(TMTC, 4915, CurTab, arg(1)) |
Запускаю с параметрами. Ошибок не выдает, но и не чего не происходит.
TabTools
Выдает список всех вкладок на обеих панелях с названиями, путями и обозначением статуса. Содержит подменю операций со вкладками.
Code: | TabTools.powerpro
TabTools.ini
TabTools.icl |
В папке Subs:
Code: | Sub_TreatCL.powerpro
Sub_ReadTabs.powerpro
Sub_PathVal.powerpro
Sub_MultiFind.powerpro
Sub_HighLight.powerpro
Sub_CloseDups.powerpro
Sub_CloseAllTabs.powerpro
Sub_Alias.powerpro |
При запуске TabTools.powerpro выдает INI Plugin error #1
Такая же ошибка вылетает при запуске Sub_ReadTabs.powerpro
Code: | if(ini.check_exists(Config, Single, "path") != 3) do
Temp = "Key 'path' does not exist in section '" ++ Single ++ "'"
messagebox("ok error", Temp, "INI plugin error #1")
quit all
endif |
F2 и localBar от Gregory
Открывает локальное меню, если оно есть, в противном случае повторно считывает путь. Желательно повесить скрипт на клавишу F2. Скрипт для тех, кто ностальгирует по Нортону
Вызываемые модули Утилиты TCMenu или TCToolbar (установлены обе и работают)
F2
Code: | local hwnd = win.handle("c=TTOTAL_CMD")
local Panel = ifelse(tc.active(hwnd) == "left", 2, 3)
local TMP = childwin.handle(hwnd,"TMyPanel", Panel)
local TMTC = childwin.handle(TMP,"TMyTabControl")
local Path = childwin.gettext(ifelse(TMTC, TMTC, TMP), "TMyPanel", 2)
Path = file.folder(Path)
for (length(Path) > 1)
Panel = Path ++ "\_local.bar"
if (validpath(Panel)) do
do("c:\totalcmd\programs\TCmenu.exe", Panel)
quit
else
Path = file.folder(Path)
endif
endfor
win.sendmessage(hwnd, 0x400+51, 540, 0) |
localBar
Code: | local path barpath hh
;получим дескриптор окна TC
hh=win.handle("c=TTOTAL_CMD")
;сохраним буфер обмена в переменную
local tmp=clip.get
;скопируем в буфер активную директорию
win.sendmessage(hwnd,0x400+51,2029,0)
;получим активную директорию
path=clip.get
;если в ней или в родительских находится файл _local.bar
;запускаем его с помощью TCMenu
for (length(path)>1)
barpath=path++"\_local.bar"
if (validpath(barpath)) do
barpath="'""++barpath ++"'" -$"
do("c:\totalcmd\programs\TCmenu.exe",barpath)
break
else
path=file.folder(path)
endif
endfor
;восстановим буфер обмена
clip.set(tmp) |
в папке лежит _local.bar
Ни один из двух скриптов не работает. При запуске бар не выскакивает.
С панели ТС и через командную строку работает….. |
|
Back to top |
|
|
Paranoik
Joined: 05 Oct 2006 Posts: 9
|
(Separately) Posted: Sat Sep 29, 2007 17:42 Post subject: |
|
|
DirColor
http://pprotcmd.narod.ru/Scripts/DirColor.htm
Позволяет задать цвет директории в зависимости от ее содержимого
Quote: | args Path
local hwnd = win.handle("c=TTOTAL_CMD")
local IniFile = pprofolder ++ "scripts\ini\DirColor.ini" (мой путь)
local Masks = ini.enum_keys(IniFile, "Colors")
local MCounter = line(Masks, 0)
local Dirs = file.listfiles(Path, 4)
local DCounter = line(Dirs, 0)
local i, j, OneDir, OneMask, OneKey
local Desc = file.open(Path ++ "descript.ion", "w")
if(Desc <= 0) do
messagebox("ok error", "File not opened", "FILE plugin error")
quit
endif
for(i = 1; i <= DCounter; i++)
OneDir = line(Dirs, i)
for(j = 1; j <= MCounter; j++)
OneMask = line(Masks, j)
if(file.validpath(OneDir ++ "\" ++ OneMask)) do
OneKey = ini.get(IniFile, "Colors", OneMask)
file.writeline(Desc, file.nametype(OneDir) ++ " " ++ OneKey)
endif
endfor
endfor
file.close(Desc)
win.sendmessage(hwnd, 0x400+51, 540, 0) |
Выдает ошибку:
Code: | ERROR: ini.enum_keys: INI FILE DOESN'T EXIST
ERROR occurred near line 5 of script DirColor:
local Masks = ini.enum_keys(IniFile, "Colors")
|
плагины win, ini, file установлены |
|
Back to top |
|
|
Georgе
Joined: 28 Aug 2007 Posts: 99
|
(Separately) Posted: Sun Sep 30, 2007 01:15 Post subject: |
|
|
Пути "под себя" поправить не забыл? Не напутал, когда поправлял? |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Sun Sep 30, 2007 16:44 Post subject: |
|
|
Попробую помочь.
1) Прежде всего убедись, что все скрипты живут в подпапке scripts той директории, куда установлена PowerPro (по умолчанию, кажется, c:\Program Files\PowerPro).
2) Попробуй запустить такой скрипт: Code: | win.debug("Hello World") | Должно вылезти окошко с текстом Hello World. Если вылезет, будем разбираться дальше. Если нет, см. выше.
TabTools
Попробуй поменять расширения скрипта на txt, хотя вряд ли поможет.
INI plugin error #1 означает, вероятно, что файл wincmd.ini не находится там, где указано (см. код скрипта TabTools). То, что файла wincmd.ini нет совсем, я исключаю
3) Скопируй все *.powerpro в *.txt - чтобы были два одинаковых файлв с одним именем, но разными расширениями. На сайте pprotcmd.narod.ru я объяснил, почему использую расширение txt вместо powerpro.
LocalMenu
Обрати внимание на следующую строчку: Code: | do("c:\totalcmd\programs\TCmenu.exe", Panel) | Там должен быть указан твой собственный путь к TCmenu.
Попробуй и сообщи, что получилось. Единственный случай, когда мои скрипты вообще не работали, был когда человек не туда их положил, так что начни с первого пункта.
Желаю удачи _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Sun Sep 30, 2007 18:18 Post subject: |
|
|
2Paranoik
Может, он прав, когда говорит Code: | INI FILE DOESN'T EXIST | , то есть "ini-файл не существует"? Проверь, есть ли он по указанному пути. Если PowerPro установлена в c:\Program Files\PowerPro, то путь к файлу настроек должен быть:
c:\Program Files\PowerPro\scripts\ini\DirColor.ini
либо можешь положить его куда угодно и прописать путь в явном виде, например: Code: | local IniFile = "c:\MyPath\MyDirColor.ini" | - лишь бы указанный файл существовал в указанном месте. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Paranoik
Joined: 05 Oct 2006 Posts: 9
|
(Separately) Posted: Sun Sep 30, 2007 19:31 Post subject: |
|
|
Спасибо с TabTools разобрался. Там было %COMMANDER_PATH%/wincmd.ini
Как можно задать относительный путь чтоб работало с флэшки?
PowerPro у меня стоит в подпапке тотала.... Но если вписать точный путь, то с флэшки скрипт уже не будет работать....
Остальные подскрипты пока не работают. Буду позже разбираться, видать что-то с путями тоже....
LocalMenu
Quote: | Обрати внимание на следующую строчку
Code: | do("c:\totalcmd\programs\TCmenu.exe", Panel) |
Там должен быть указан твой собственный путь к TCmenu. |
Так и есть.....
В командной строке пишу:
Code: | c:\totalcmd\programs\TCmenu.exe c:\totalcmd\programs\_local.bar |
И все работает. А через скрипт не хочет.....
При запуске скрипта видно, что он запускается, но ничего не выдает.....
DirColor
Quote: | либо можешь положить его куда угодно и прописать путь в явном виде, например
Code: | local IniFile = "c:\MyPath\MyDirColor.ini" |
- лишь бы указанный файл существовал в указанном месте. |
Прописал
Code: | local IniFile = "c:\totalcmd\programs\ppro\scripts\ini\DirColor.ini" |
Именно там и лежит. Но не работает.
Содержание файла:
Code: | [Colors]
;mask=keyword
*.pcf=Red
blank.ico=Green |
Что значит эта строчка?
Code: | local Masks = ini.enum_keys(IniFile, "Colors") |
ЗЫ Как сделать, чтоб панелька TabTools выскакивала по середине экрана, а не у курсора мышки? |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Sun Sep 30, 2007 20:26 Post subject: |
|
|
Quote: | Как можно задать относительный путь чтоб работало с флэшки? | Есть такая переменная pprofolder. Из названия ясно, что она всегда имеет значение того пути, куда установлена PowerPro. Впрочем, для решения таких изощренных задач без RTFM обойтись...
Что касается LocalMenu, то этот скрипт написал Gregory, а было это очень давно. С тех пор синтаксис команд поменялся, и работа скрипта может сильно отличаться от планируемой. Попробуй мой скрипт http://powerpro.wincmd.ru/Scripts/F2.htm.
Насчет DirСolor. Ты почитай описание - все ли сделано правильно? В частности, если ты не менял инишник, то результат будет лишь при наличии файлов *.pcf и конкретного файла blank.ico. Они есть? Если нет, то скрипт и не будет работать.
Попробуй сначала проследовать по описанному пути. Если все пашет, создай свои маски и цвета, а не те, которые я привел чисто для примера.
Quote: | Что значит эта строчка? | См. документацию к плагину ini. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Paranoik
Joined: 05 Oct 2006 Posts: 9
|
(Separately) Posted: Sun Sep 30, 2007 22:35 Post subject: |
|
|
Quote: | Есть такая переменная pprofolder. Из названия ясно, что она всегда имеет значение того пути, куда установлена PowerPro. Впрочем, для решения таких изощренных задач без RTFM обойтись... |
Это я уже понял что за переменная. Пытался задавать с этой переменной путь вида ../../ не получилось.
Quote: | Что касается LocalMenu, то этот скрипт написал Gregory, а было это очень давно. С тех пор синтаксис команд поменялся, и работа скрипта может сильно отличаться от планируемой. Попробуй мой скрипт http://powerpro.wincmd.ru/Scripts/F2.htm. |
В первом посте написал, что оба пробовал. Ни один не работает.
Quote: | Насчет DirСolor. Ты почитай описание - все ли сделано правильно? В частности, если ты не менял инишник, то результат будет лишь при наличии файлов *.pcf и конкретного файла blank.ico. Они есть? Если нет, то скрипт и не будет работать.
Попробуй сначала проследовать по описанному пути. Если все пашет, создай свои маски и цвета, а не те, которые я привел чисто для примера. |
Все проверил по статье. Вроде все правильно. DirColor.ini изменил под себя.
Только проблема осталась. Скрипт выдает ошибку.
ЗЫ Вызываю меню горячей клавишей из PowerPro. Там клавой перехожу на отображение папки Program Files. Она открывается в менюшки, но если мышка в стороне, то через 1-2 сек она исчезает (папка-меню). (Первоначальная менюшка держится сколь угодно долго, т.к. Скрывать через (мс): отключено)
Собственно вопрос: как заставить подменю (в виде папки) не закрываться, если мышка в стороне? |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Mon Oct 01, 2007 00:15 Post subject: |
|
|
Это в смысле - переход на два уровня вверх? Не, не должно покатить, надо использовать file.folder. Попробуй это.
Вот только что тупо взял вот отсюда код скрипта, заменил путь к TCmenu и запустил без проблем!
Возможно, дело в винде. У меня 2000, и под ХРюшей я скрипты не тестировал.
А другие скрипты работают? Не работают только те, о которых ты говорил, а другие работают?
Еще мысль. Попробуй вместо параметра %P указывать %p (и т.п.). Еще попробуй поставить знак вопроса перед параметрами:Если и это ничего не даст, то пока у меня идеи кончились. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Paranoik
Joined: 05 Oct 2006 Posts: 9
|
(Separately) Posted: Mon Oct 01, 2007 02:02 Post subject: |
|
|
Нашел косяк.
Quote: | for (length(Path) > 1)
Panel = Path ++ "/_local.bar"
if (validpath(Panel)) do
do("c:/totalcmd/programs/TCmenu.exe", Panel)
quit
else
Path = file.folder(Path)
endif
endfor |
Замечена недоработка. Если менюшка лежит в родительской(ских) папках, то она всегда отображается! Т.е. если ее положить в корень диска С, то во всех папках будет менюшка....
MoveTab
Делает копию на другой панели. Потом перемещает курсор на 2 пункта вниз и жмет Enter. В общем криво, но работает. Видимо что-то подправить надо в скрипте....
Hello World
Работает Ж)
Divider
Работает. Хотя есть косяк. Частенько вызывает менюшку, и тутже она исчезает. Видимо какая то команда её отменяет. А так в принципе работает.
TabTools
Сам скрипт работает.
Подскрипты вызываемые этим скриптом пока не работают.
Пара скриптов запускалась. Теперь почему-то ни один из них не работает
Позже буду разбираться.
После запуска скрипта MoveTab другие скрипты, которые выдавали ошибки добавляют вниз 2-3 строки вида:
Code: |
Called from line 26 of script MoveTab
Called from line 26 of script MoveTab
Called from line 26 of script MoveTab
|
Помогает перезапуск PowerPro |
|
Back to top |
|
|
Paranoik
Joined: 05 Oct 2006 Posts: 9
|
(Separately) Posted: Mon Oct 01, 2007 02:25 Post subject: |
|
|
Запустил DirColor. Ошибок не выдает. Поменял в пути \ на /
DirColor.ini
Code: | [Colors]
;mask=keyword
*.html=Green |
Делаю папку. Кидаю туда пачку *.html
Выхожу из папки запускаю скрипт. захожу, читаю descript.ion слова Green там нет.
В папке запускаю скрипт. читаю descript.ion опять ничего.
Ни в дочерних ни в родительских папках в файлах descript.ion данные слова не прописываются. |
|
Back to top |
|
|
Georgе
Joined: 28 Aug 2007 Posts: 99
|
(Separately) Posted: Mon Oct 01, 2007 03:09 Post subject: |
|
|
Paranoik, ты перепутал назначение скриптов.
Quote: | Название DirColor
Имя файла (*.txt) DirColor.txt
Описание Позволяет задать цвет директории в зависимости от ее содержимого |
Для работы с файлами descript.ion предназначен другой скрипт. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Mon Oct 01, 2007 11:57 Post subject: |
|
|
Quote: | Замечена недоработка. Если менюшка лежит в родительской(ских) папках, то она всегда отображается! Т.е. если ее положить в корень диска С, то во всех папках будет менюшка.... | Это не недоработка, это следование идеологии Нортона! Происходит вот что: при запуске скрипта РР пытается найти _local.bar в текущей директории. Если не находит, смотрит в родителе. Если не находит - в прародителе и далее до корня. То есть можно иметь менюшку, скажем, для всех языков (c:\Languages) и отдельно для английского (c:\Languages\English), французского ( c:\Languages\Francais) и т.д. Частное всегда сильнее общего (локальное - глобального) - это везде так.
"Это не ошибка, это системная функция!"
Вообще Свитцер (автор РР) настаивает на использовании в скриптах именно прямого слеша, а не обратного. Обосновывает он это тем, что обратный применяется во всяких эскейп-последовательностях типа \n. Я не обнаружил абсолютно никакой разницы, поэтому пишу когда как. Если тебе это помогло - я рад.
Quote: | Делает копию на другой панели. Потом перемещает курсор на 2 пункта вниз и жмет Enter. | Спасибо за разьяснение
Quote: | В общем криво, но работает. Видимо что-то подправить надо в скрипте.... | Попробуй вместо Code: | *keys {down 5}{enter} | написать Code: | *keys {slow}{down 5}{enter} |
Quote: | Делаю папку. Кидаю туда пачку *.html
Выхожу из папки запускаю скрипт. захожу, читаю descript.ion слова Green там нет | 1) Проверь, есть ли цветовой фильтр Green;
2) Проверь, определен ли цвет для фильтра _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Paranoik
Joined: 05 Oct 2006 Posts: 9
|
(Separately) Posted: Tue Oct 02, 2007 09:59 Post subject: |
|
|
Quote: | "Это не ошибка, это системная функция!"
Вообще Свитцер (автор РР) настаивает на использовании в скриптах именно прямого слеша, а не обратного. Обосновывает он это тем, что обратный применяется во всяких эскейп-последовательностях типа \n. Я не обнаружил абсолютно никакой разницы, поэтому пишу когда как. Если тебе это помогло - я рад. |
Для меня ошибка. Т.к. по другому просто не работает.
Quote: | Спасибо за разьяснение |
Это не разъяснение. Это у меня так скрипт работал. Вместо перемещения делал копию на другой панели а на исходной запускал файл на 2 позиции ниже....
Подправил.
Code: | *keys {slow}{down 5}{enter} |
Теперь делает 2 копии на противоположной панели. Потом секунд 5 над чем-то думает... Исходная панель остается.
Quote: | 1) Проверь, есть ли цветовой фильтр Green;
2) Проверь, определен ли цвет для фильтра |
Проверил. Все есть. Только вопрос в другом. Какой смысл от фильтра, если в descript.ion не добавляется ни строчки? Ведь фильтр раскрашивает папку в зависимости от содержания файла descript.ion? А там пусто..... |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Wed Oct 03, 2007 18:58 Post subject: |
|
|
Я прокомментирую скрипт DirColor как очень несложный. Не знаю, зачем я это делаю, но больше ничем тебе помочь не смогу. У меня все работает. Более того, я знаю еще минимум двух человек, у кого тоже работает.
args Path
;;путь (%P)
local hwnd = win.handle("c=TTOTAL_CMD")
;;получаем дескриптор окна ТС
local IniFile = pprofolder ++ "scripts\ini\DirColor.ini"
;;указываем, где искать файл настроек
local Masks = ini.enum_keys(IniFile, "Colors")
;;какие маски в разделе [Colors]
local MCounter = line(Masks, 0)
;;сколько их
local Dirs = file.listfiles(Path, 4)
;;список поддиректорий текущего пути
local DCounter = line(Dirs, 0)
;;сколько их
local i, j, OneDir, OneMask, OneKey
local Desc = file.open(Path ++ "descript.ion", "w")
;;открыли файл descript.ion в текущей директории
if(Desc <= 0) do
messagebox("ok error", "File not opened", "FILE plugin error")
quit
endif
;;если не открылся, завершить
for(i = 1; i <= DCounter; i++)
;;цикл по директориям
OneDir = line(Dirs, i)
;;одна директория
for(j = 1; j <= MCounter; j++)
;;цикл по маскам
OneMask = line(Masks, j)
;;одна маска
if(file.validpath(OneDir ++ "\" ++ OneMask)) do
;;подходящая директория найдена
OneKey = ini.get(IniFile, "Colors", OneMask)
;;получить имя фильтра
file.writeline(Desc, file.nametype(OneDir) ++ " " ++ OneKey)
;;записать его в дескрипт.ион в формате "директория фильтр"
endif
endfor
endfor
file.close(Desc)
;;закрыть дескрипт.ион
win.sendmessage(hwnd, 0x400+51, 540, 0)
;;обновить панель
Вот. Если хочешь, чтобы скрипт работал, вставляй отладочную печать
win.debug(переме1, перем2, ...)
Я не знаю, чем еще я могу тебе помочь. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|