PP Scripts -- Menues For TC

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

PP Scripts -- Menues For TC

Сообщение Reuben » Вс мар 16, 2003 10:45 am

Самое мной используемое сейчас меню

Код: выделить все
;copyforward  and copybackward : Reuben Kagan ()
;Favorite & Recent  Folders for Open/Save Dialogs, Total Commander
;and Servant Salamander (partly) - four (or more :)) column menu
;first column - open/save dialog history build by Powerpro (look in Setup tab) ,
;second column - own menu history renewed in Total Commander only,
;last column - entries added manually from Total Commander with
;.pathtorecent script. Between second and last columns user defined
;columns shoud be added - good for TC special folder (Controls, Drives, Network and so on)
;(strangely, one could move to FS plagin with "cd  "  command, but not to My Network
;though one could move FROM My Network with "cd " command, but not  from FS plugin).
;Programs may be runned and files may be opened with this menu too (in TC only!).
;(For programs and files execution part of menu entry must be preceded with exclamation mark).
;Also every TC internal command could be executed.

....



190 строчек по-этому целиком не кидаю

<a href='http://rcagan.mailru.com/rfolders.txt' target='_blank'>http://rcagan.mailru.com/rfolders.txt</a>

а этот скрипт приснился мне во сне

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



incpath="c:wincmdWINCMD.INC"

wcommand=(filemenu("&(incpath)"))

wcommand=select(&(wcommand), index(&(wcommand),";")-1)

Window PostMessage  "wm_user+51 &(wcommand)  " Total Commander 5*   




четыре строчки и все встроенные команды TC у вас в руках!
<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

Сообщение k0ev » Вс мар 16, 2003 11:58 am

А как тем монстром из 190 строк пользоваться то.... Извини, что то не разобрался....
No 1 can b told what the matrix is! U have 2 c it 4 yourself!

<a href='http://members.lycos.co.uk/k0ev' target='_blank'>All About...</a>
k0ev
Мл. сержант
 
Сообщений: 23
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: Israel
Пункты репутации: 0

Сообщение Reuben » Вс мар 16, 2003 4:40 pm

В Setup отмечаешь галочку, которая про то, чтобы сохранять историю Open/Save диалогов. дальше в папке pprofolderfavfolders создаеётся файл _any.txt , в который Powerpro скидывает пути из последних скольких-то Open/Save диалогов. Если туда в конец дописать сепаратор sep или colsep то после него Powerpro не заглядывает , и туда можно дописывать что хочешь в формате filemenu* . У меня в скрипте предполагается что есть минимум 3 столбца, (т.е. в файле _any.txt как минимум 2 строчки colsep)-а лучше 4.Скрипт вешается на хоткей(например)-при вызове появляется меню, построенноеиз файла_any.txt. обычно исполняемая часть строчки меню -полный путь к фолдеру. по таким строчкам и будет осуществлятся переход к фолдеру. если исполняемая часть строчки меню -число, то оно передается как внутренняя команда Тоталкоммандеру -- так можно переходить к специальным каталогам, вроде Контролпанели или принтеров, а можно и просто посылать Коммандеру любую команду, -- копировать путь файла, или выделить все, или что хочешь. номера команд можно узнать в файле "wincmd.inc" в папке коммандера.обращения к внутренним командам работает, естественно, только в тоталкоммандере, в Open/Save диалогах игнорируется. наконец, если исполняемая часть строчки меню начинается с восклицателйного знака, то то что после восклицательного знака передается в командную строку и пытается исполниться -- так можно вставлять документы или программы(или программы с аргументами, или что угодно, что запускается из командной строки Тоталкомандера) команды с восклицательным знаком тоже работают только в тоталкоммандере.
наконец, я использую еще дин скрипт, который дописывает в конец файла _any.txt текущий каталог TC, и планирую написать такой же, чтоб добавлять текущий файл. впрочем файл _any.txt можно (и нужно) редактировать вручную.
* формат filemenu - просто имя_строчки=исполняемая_часть_строчки
<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

Сообщение k0ev » Вс мар 16, 2003 5:27 pm

Ok... Thanx.... Вроде разобрался... отсалось только узнать насколько мне это полезно, удобно и нужно :-)
No 1 can b told what the matrix is! U have 2 c it 4 yourself!

<a href='http://members.lycos.co.uk/k0ev' target='_blank'>All About...</a>
k0ev
Мл. сержант
 
Сообщений: 23
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: Israel
Пункты репутации: 0

Сообщение XLSoft » Вс мар 16, 2003 6:38 pm

2Reuben
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->а этот скрипт приснился мне во сне<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
C Тотал Коммандером чет не работает.
<a href='http://xlsoft.net.ru/' target='_blank'>XLSoft</a> - оффлайн-каталог лучших программ и сайтов
XLSoft
Капитан
 
Сообщений: 158
Зарегистрирован: Чт мар 28, 2002 8:39 pm
Откуда: Киев
Пункты репутации: 0

Сообщение Reuben » Пн мар 17, 2003 8:56 am

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

incpath="c:wincmdWINCMD.INC"


проверь , этот путь у тебя тот же ?
<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

Сообщение Reuben » Пн мар 17, 2003 9:12 am

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Ok... Thanx.... Вроде разобрался... отсалось только узнать насколько мне это полезно, удобно и нужно :-)<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Тот еще вопрос <!--emo&:)-->Изображение<!--endemo-->
Писалось все это сначала для внутреннего пользования, потом для тренировки. Чтобы это было полезно, оттуда хорошо бы выкинуть все ненужное,(и добавить нужное <!--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

Сообщение XLSoft » Пн мар 17, 2003 12:17 pm

2Reuben
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->проверь , этот путь у тебя тот же ?<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Нет, не тот, но я его поменял первым делом. <!--emo&:)-->Изображение<!--endemo--> Все едино. <!--emo&:(-->Изображение<!--endemo-->
<a href='http://xlsoft.net.ru/' target='_blank'>XLSoft</a> - оффлайн-каталог лучших программ и сайтов
XLSoft
Капитан
 
Сообщений: 158
Зарегистрирован: Чт мар 28, 2002 8:39 pm
Откуда: Киев
Пункты репутации: 0

Сообщение Reuben » Пн мар 17, 2003 12:21 pm

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->2Reuben
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->проверь , этот путь у тебя тот же ?<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Нет, не тот, но я его поменял первым делом. <!--emo&:)-->Изображение<!--endemo--> Все едино. <!--emo&:(-->Изображение<!--endemo--><!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
гм, а что пишет? менюшку показывает? мб. какие лишние пробелы в названии окна?

:?: :?:
<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

Сообщение Gregory » Сб мар 22, 2003 9:20 am

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
190  строчек по-этому целиком не кидаю

<a href='http://rcagan.mailru.com/rfolders.txt' target='_blank'>http://rcagan.mailru.com/rfolders.txt</a>

<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->

Вроде ссылка не работает...
Может кинешь целиком?
Gregory
Капитан
 
Сообщений: 156
Зарегистрирован: Пн мар 03, 2003 7:28 pm
Откуда: Киев
Пункты репутации: 0

Сообщение XLSoft » Сб мар 22, 2003 9:28 pm

2Reuben
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->гм, а что пишет? <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Изображение
<a href='http://xlsoft.net.ru/' target='_blank'>XLSoft</a> - оффлайн-каталог лучших программ и сайтов
XLSoft
Капитан
 
Сообщений: 158
Зарегистрирован: Чт мар 28, 2002 8:39 pm
Откуда: Киев
Пункты репутации: 0

Сообщение Reuben » Вс мар 23, 2003 10:02 am

<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

Сообщение Reuben » Вт май 13, 2003 11:59 am

Скрипт, по которому вызывается меню перехода на диски и FS плагины.
Код: выделить все
   wincmdinipath="c:\wincmd\wincmd.ini"
 letterordering="bcdefghijklmnopqrstuvwxyz"
;  буквы дисков, про которые проверяется, mounted или нет
letternocheck="a"
 hhh=win.handle("c=TTOTAL_CMD")
     
 
;  Win.postMessage(&(hhh),0x400+51,331 )
   
handlemenu=menu.create()
; как перебирать по буквам? а вот так!


for (i=0; i lt length(letternocheck); i=i+1)
 menu.insert(handlemenu,1000,"[-" ++ select(letternocheck,i+1,i+1)  ++ "-]","",select(letternocheck,i+1,i+1))
   
endfor
k=i
; смотрим, какие  буквы отражают смонтированные диски

for (i=0; i lt (length(letterordering)+k); i=i+1)
   if (mounted select(letterordering,i+1,i+1))  Do
;фича она же бага . если дискетка не вставлена, вы на нее перейти не сможете, если не пропишите
;в letternocheck
;как узнать, под какие буквы прописаны диски, я не знаю.
 menu.insert(handlemenu,1000,"[-" ++ select(letterordering,i+1,i+1)  ++ "-]","",select(letterordering,i+1,i+1))
   Else
 
   Endif
endfor
menu.insert(handlemenu,1000,"","-"
; 1 --  (j-1) доступные диски

;читаем wincmd.ini в поисках FS плагинов
inihandle = File.Open(wincmdinipath, "r")
if (inihandle > 0) Do
  for (lineNum=1;1;LineNum=LineNum+1)
     str = File.ReadLine(inihandle)
     if( (File.Eof(inihandle)) or ( &(str) eq "[FileSystemPlugins]" ++ "'n"))
        break
       endfor
 if ( &(str) eq "[FileSystemPlugins]"++ "'n") Do
    for (lineNum=1;1;LineNum=LineNum+1)
         str = File.ReadLine(inihandle)
       if( (File.Eof(inihandle)) or ( select(str,1,1) eq "["))
        break
       if (select(str,1,1) eq " ") Do
          
       Else
 menu.insert(handlemenu,1000,select(str,1,index(str,"=")-1),"","\\" ++ select(str,1,index(str,"=")-1))
       Endif
   endfor
 Endif  


file.close(inihandle)
else
  MessageBox ("ok", "Error opening file "++  wincmdinipath )
endif

ind=menu.show(handlemenu)
if ((select(ind,1,1) le "z") and (select(ind,1,1) ge "a") )Do
   Debug &(select(ind,1,1)))
   Win.postMessage(&(hhh),0x400+51,331 )
; открываем бокс дисков
   keys {to &(hhh)} &(ind)
   keys {to &(hhh)}{en}
Elseif(select(ind,1,1) eq "\") do
   ind="cd " ++ ind
; команда cd path не работает из FS плагинов
   Win.postMessage(&(hhh),0x400+51,2029 )
; копируем текущий путь   
   if (select(clip.get,3) eq "\\") Do
   Win.postMessage(&(hhh),0x400+51,2125 )   
   endif
; если мы были в FS плагине, переходим в Networks   
   clip.set(ind)
   Win.postMessage(&(hhh),0x400+51,2006 )
; фокус на командную строку
   clip.paste
   keys {to &(hhh)}{enter}
Endif
menu.destroy(handlemenu)

quit

Работает очень медленно. То ли потому, что скрипт, то ли потому, что я его писал <!--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

Сообщение Ergo » Ср май 14, 2003 10:19 am

У меня работает быстро, но показывает только ошибки. Сначала

Bad expression: expecting value or variable at
[Configuration]
eq "[FileSystemPlugins]" ++ "'n"))
( (File.Eof(inihandle)) or ( [Configuration]
eq "[FileSystemPlugins]" ++ "'n"))
Error occurred near line 30 which contained:
if( (File.Eof(inihandle)) or ( &(str) eq "[FileSystemPlugins]" ++ "'n"))
Press Cancel to end all running scripts.


а потом

Bad expression: expecting value or variable at
[Configuration]
eq "[FileSystemPlugins]"++ "'n")
( [Configuration]
eq "[FileSystemPlugins]"++ "'n")
Error occurred near line 33 which contained:
if ( &(str) eq "[FileSystemPlugins]"++ "'n") Do
Press Cancel to end all running scripts.
<!--coloro:purple--><span style="color:purple"><!--/coloro--><!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->I can't stop using<a href="http://wincmd.ru" target="_blank">Total Commander</a> <!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
Ergo
Полковник
 
Сообщений: 1357
Зарегистрирован: Чт мар 28, 2002 12:42 pm
Откуда: Brest Fortress
Пункты репутации: 0

Сообщение Reuben » Ср май 14, 2003 4:53 pm

мне не удалось воспроизвести эту ошибку.
проверялось на свежепоставленной РР на Win98 WC5.0
на вот таком коде
Код: выделить все
wincmdinipath="c:\windows\wincmd.ini"
hhh=win.handle("c=TTOTAL_CMD")
 
inihandle = File.Open(wincmdinipath, "r")
if (inihandle > 0) Do
 for (lineNum=1;1;LineNum=LineNum+1)
    str = File.ReadLine(inihandle)
win.debug(select(str,1,index(str,"=")-1))    

    if( (File.Eof(inihandle)) or ( str eq "[Packer]" ++ "'n"))
       break
      endfor
debug 000000000000000000
if ( str eq "[Packer]"++ "'n") Do
win.debug(str)
win.debug("222222222222222")
 for (lineNum=1;1;LineNum=LineNum+1)
        str = File.ReadLine(inihandle)
      if( (File.Eof(inihandle)) or ( select(str,1,1) eq "["))
       break
      if (select(str,1,1) eq " ") Do
       
      Else

 win.debug(select(str,index(str,"=")))    

Endif
endfor
Endif  

file.close(inihandle)
else
 MessageBox ("ok", "Error opening file "++  wincmdinipath )
endif
debug &(str)
quit

Единственное, что менялось в настройках РР -- use quote ' for escape ...

Теперь про скорость. Я разбил скрипт на два, в одном меню создается(его можно привязать к запуску ТС), в другом вызывается, а уничтожать его вообще не надо. при этом так как меню теперь не обновляется, то возню с mounted я удалил, список дисков вводится вручную. выкладывать я их пожалуй , не пока не буду.
<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

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

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

cron