Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Script plugin-maker 0.5.1

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Thu Jul 07, 2005 19:34    Post subject: Script plugin-maker 0.5.1 Reply with quote

Решил поделиться своими наработочками для Script plugin-maker 0.5.1 (к сожалению, плагин давно не обновлялся), может кто, в свою очередь, поделится своими.
Code:
'wlx_vbscript.vb
'simple plugin on VBScript

font_name="Fixedsys"
font_size=12
view_end = "false"
view_wrap = "true"
view_scroll = "both"
view_backgroundcolor = "white"
view_textcolor = "black"

result_text   = ""

Dim fso, ts, s
Set fso = CreateObject("Scripting.FileSystemObject")
sExt = lcase(fso.GetExtensionName(file_name))

Select Case sExt

case "bar"
'view_textcolor = "green"
readfile
process "button\d", vbCRLF+"$&" 'ставим перенос строки
process "\b(cmd|path|menu|iconic|param)\d", "   $&" 'добавляем отступ в 3 пробела

case "eps", "ai", "ps", "prn"
Set f = fso.GetFile(file_name)
if f.size>1000000 then
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(file_name, ForReading)
s = ts.read(1000)
ts.Close
else
readfile
s=result_text
end if
'dim re
Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.MultiLine = True

sp = "\s+" 'at least one any space symbol
num = "(-?\d+\.?\d*)" 'any number like -3.51 or 4
spnum = sp + num
re.Pattern = "(%%BoundingBox:|%%PageBoundingBox:|%ADO_ImageableArea:|%%HiResBoundingBox:)" + spnum + spnum + spnum + spnum
if re.Test(s) then
Set tt = re.Execute(s)
re.Pattern = "-?\d+\.?\d*"
Set bb = re.Execute(tt(0))
sx= Round((bb(2)-bb(0))*0.352778)'25.4/72
sy= Round((bb(3)-bb(1))*0.352778)'25.4/72

'result_text= sx & " mm x " & sy& " mm"
result_text= sx & " x " & sy& " mm"
End if
'end case "eps", "ai", "ps", "prn"
Case Else
'result_text = sExt + " file type"
End Select

Sub readfile()
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(file_name, ForReading)
s = ts.ReadAll
AddLine s
ts.Close
End Sub

Sub process (a,b)' замена в тексте a на b
Dim re
Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.MultiLine = False

re.Pattern = a
result_text = re.Replace(result_text,b)
End Sub

Здесь написан вьюер для "bar" файлов коммандера (для упражнения) и для "eps", "ai", "ps", "prn" файлов - пытается выдрать и показать размер файла, если файл содержит превью, то такие (binary) файлы VBScript не обрабатывает и у меня они показываются с помощью Imagine
Back to top
View user's profile Send private message
Ergo
Site Admin


Joined: 14 Dec 2004
Posts: 430

Post (Separately) Posted: Tue Jul 12, 2005 12:57    Post subject: Reply with quote

Lev

Попробовал установить - не получается заставить работать.
Bar файлы просматриваются как текст.

Идея интересная. Если заработает, можно попробовать выложить на wincmd.ru отдельным дистрибутивом вместе с wlx_vbscript.wlx и pluginst.inf - может тогда народ потянется Smile
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Wed Jul 13, 2005 20:31    Post subject: Reply with quote

новый wlx_vbscript.vb находится в папке плагина? (старый нужно переименовать во чтонибудь другое или удалить)
А с prn-eps... работает? А если раскомментировать строку 'result_text = sExt + " file type" показывается ли вместо текста расширение со словами filetype?
Возможно, но маловероятно, что на машине не стоит MS Scripting Runtime, или как он там называется...
У меня плагин работает и под 98 и под ХР

Вот пример того, что вы должны увидеть без плагина:
Code:
[Buttonbar]
Buttoncount=11
button1=wcmicons.dll,15
cmd1=C:\WINCMD\5\bar2.BAR
button2=c:\wincmd\tcmenu.exe
cmd2=c:\WINCMD\TCmenu.exe
param2=%Pnnn.bar -$
path2=c:\WINCMD\
menu2=TCmenu
iconic2=
и с плагином
Code:
[Buttonbar]
Buttoncount=11

button1=wcmicons.dll,15
   cmd1=C:\WINCMD\5\bar2.BAR

button2=c:\wincmd\tcmenu.exe
   cmd2=c:\WINCMD\TCmenu.exe
   param2=%Pnnn.bar -$
   path2=c:\WINCMD\
   menu2=TCmenu
   iconic2=
Quote:
Идея интересная. Если заработает, можно попробовать выложить на wincmd.ru отдельным дистрибутивом
Хотелось бы выделить в отдельную группу все скриптуемые навороты на Total, или сделать перекрестную ссылку на TCHelper, ScriptWFX, данный плагин, AutoIT, PowerPro и т.д., и т.п.
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Tue Feb 26, 2008 16:49    Post subject: Reply with quote

Секция для просмотра pdf с помощью pdftotext.
Авось, кому пригодится, как пример подключения к листеру и других подобных конвертеров.
Code:
Case "pdf"
   Set f = fso.GetFile(file_name)
   If f.Size<>0 Then
   Set WshShell = CreateObject("WScript.Shell")
   tmp=WshShell.ExpandEnvironmentStrings("%Temp%")
   fileout=tmp & "\delete.it"
'тут надо указать правильный путь к конвертеру
   command="c:\WINCMD\Content_wdx\TextSearch\Conv\PDF\pdftotext.exe -layout """ & file_name & """ " & fileout
   WshShell.Run command,0,True
  On Error Resume next
  Set ts = fso.OpenTextFile(fileout, ForReading)
  s = ts.ReadAll
  AddLine s
  ts.Close
  fso.DeleteFile fileout
  On Error Goto 0
  Set WshShell=Nothing
  Set fso=Nothing
  End If
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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