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 

Обмен кнопками
Goto page Previous  1, 2, 3 ... 13, 14, 15 ... 43, 44, 45  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы printer-friendly view
View previous topic :: View next topic  
Author Message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Wed Jul 04, 2007 16:29    Post subject: Reply with quote

vet wrote:
Для этого есть более простой способ.

Этот пост был написал более года назад, когда ещё даже первая альфа семёрки Тотала не была выпущена.

И желательно включать BB-коды, если они используются в сообщении. В предыдущем посте я исправил, но на будущее стоит иметь в виду.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
aLexx



Joined: 14 Mar 2005
Posts: 442
Location: Новокузнецк

Post (Separately) Posted: Wed Jul 04, 2007 22:24    Post subject: Reply with quote

Atlair wrote:
Хочу кнопку извлечь/вставить CD Rolling Eyes


Глянь сюда ([UTIL] Утилита для работы с ТС):
http://forum.wincmd.ru/viewtopic.php?t=9566
Back to top
View user's profile Send private message
LocKtaR-o-DarK



Joined: 12 Aug 2005
Posts: 349
Location: Москва

Post (Separately) Posted: Thu Jul 05, 2007 02:35    Post subject: Reply with quote

vet
да, это замечательно, но все-таки пусть лучше тотал сравнивает своими внутренними средствами, все таки чем-то и кому-то это удобней, а для внешних средств всегда можно написать кнопку, а ля
параметр можно прописать %S2 (для winmerge это не принципиально)
_________________
        
Back to top
View user's profile Send private message
kertlerf



Joined: 20 Sep 2006
Posts: 8

Post (Separately) Posted: Mon Aug 06, 2007 05:48    Post subject: Reply with quote

Можно ли две комманды прим.
Code:
OPENBAR %COMMANDER_PATH%\Prof\01.bar
OPENTABS %COMMANDER_PATH%\Prof\01.tab

повесить на одну кнопку?
Back to top
View user's profile Send private message
kertlerf



Joined: 20 Sep 2006
Posts: 8

Post (Separately) Posted: Sat Aug 11, 2007 14:56    Post subject: Reply with quote

Вопрос снят, сам разобрался.
Back to top
View user's profile Send private message
jehaz



Joined: 24 May 2006
Posts: 16

Post (Separately) Posted: Fri Aug 17, 2007 21:16    Post subject: Reply with quote

Вот скрипт который можно повесить на кнопку с параметром %L
Копирует выделенные файлы в ту же папку добавляя нумерацию копии в скобках идентично ТС.
Облазил форум, вроде такого не было.


Code:
'================================================================
' Параметры %L
' Создает копию выделенных файлов добавляя к имени порядковый
' номер в скобках (идентично TC). Если в имени уже присутствует
' порядковый номер в скобках, то увеличивает нумерацию до появления
' незанятого номера.
'================================================================
Option Explicit
Dim FSO, WSHArg, Argument, FileList, FileStr, FileFullName, Counter
Dim FileName, LenFileName, FileExt, FilePath, CounterLen, FileVName
Dim BetweenSkoba, OpenSkoba, BeforeSkoba, BetweenSkobaInt, TextStream
Set FSO = CreateObject("Scripting.FilesystemObject")
Set WSHArg = WScript.Arguments
If WSHArg.Count > 0 Then
  Argument = WSHArg.Item(0)
  Set FileList = FSO.GetFile(Argument)
  Set TextStream = FileList.OpenAsTextStream(1)
  FileStr = vbNullString
  While Not TextStream.AtEndOfStream
    FileStr = TextStream.ReadLine()
    Counter = 1
    FileName = FSO.GetBaseName(FileStr)
    CounterLen = Len(FileName)
    Do ' Работаем пока не найдется имя не занятое файлами
      If Mid(FileName,Len(FileName),1) = ")" Then ' Если в конце имени файла скобка, то возможно это уже ранее созданные копии файлов. Проверяем.
        Do While CounterLen <> 0
          If Mid(FileName,CounterLen,1) = "(" Then ' Если находится в имени закрытая скобка, то предположим что до скобок это имя, а в скобках нумерация копий
             OpenSkoba = CounterLen
             BetweenSkoba = Mid(FileName,OpenSkoba+1,Len(FileName)-CounterLen-1) ' Получаем значение находящиеся между скобками
             BeforeSkoba = Mid(FileName,1,OpenSkoba-1) ' Получаем предположительное имя до скобок
             CounterLen = 0
          Else
             CounterLen = CounterLen - 1
          End If
        Loop
        On Error Resume Next ' Отключаем ошибочку
        BetweenSkobaInt = FormatNumber(BetweenSkoba,0) ' Преобразуем междускобие в числовой формат
          If Err.Number = 0 Then ' Если ошибок нет, то в скобках было число
            If BetweenSkoba - BetweenSkobaInt = 0 Then ' Проверяем на всякий случай вдруг в скобках десятичная дробь
              FileName = BeforeSkoba ' Задаем имя как отобранное до скобок
              Counter = Counter + BetweenSkobaInt - 1
            End If
          End If
      End If
      CounterLen = 0
      Counter = Counter + 1
      FileExt = FSO.GetExtensionName(FileStr) ' получаем расширение
      FilePath = FSO.GetParentFolderName(FileStr) ' полный путь
      FileVName = FileName & "(" & Counter & ")" ' делаем новое имя
      If FileExt <> "" Then ' проверям на наличе расширения
          FileFullName = FilePath & "\" & FileVName & "." & FileExt ' Собираем имя в кучу
      Else
          FileFullName = FilePath & "\" & FileVName ' Без расширения куча
      End If
    Loop until not (FSO.FileExists(FileFullName) or FSO.FolderExists(FileFullName))
    If FSO.FileExists(FileStr) Then ' Еще раз проверяем наличие источника
    FSO.CopyFile FileStr, FileFullName ' Копируем
    End If
  Wend
End If
WScript.Quit


Немного подправил.


Last edited by jehaz on Mon Aug 20, 2007 16:55; edited 3 times in total
Back to top
View user's profile Send private message
jehaz



Joined: 24 May 2006
Posts: 16

Post (Separately) Posted: Fri Aug 17, 2007 21:20    Post subject: Reply with quote

Скрипт вызывающий стандартное окно диалога завершения работы

Code:
'=========================================================
' Вывод диалога завершения работы.
'=========================================================
Option Explicit
Dim Shell
Set Shell = WScript.CreateObject("Shell.Application")
Shell.ShutDownWindows
Back to top
View user's profile Send private message
LocKtaR-o-DarK



Joined: 12 Aug 2005
Posts: 349
Location: Москва

Post (Separately) Posted: Sat Aug 18, 2007 18:21    Post subject: Reply with quote

jehaz wrote:
Скрипт вызывающий стандартное окно диалога завершения работы

а вот кнопка
_________________
        
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Aug 20, 2007 10:54    Post subject: Reply with quote

jehaz wrote:
Вот скрипт который можно повесить на кнопку с параметром %L
Копирует выделенные файлы в ту же папку добавляя нумерацию копии в скобках идентично ТС.
Облазил форум, вроде такого не было.

1. А зачем нужно копировать в ту же папку файл-дубликат? Тогда уж лучше задать второй параметр %P или %T по желанию пользователя.
2. Часто для нумерации файлов используются квадратные скобки. Поэтому в теле скрипта лучше не использовать жестко "(" и ")", а задать в шапке скрипта массив, например, Skoba = Array("(", ")") и в коде ссылаться на Skoba(0) и Skoba(1). При желании пользователь сможет поменять Skoba = Array("[", "]") или Skoba = Array("<", ">").
3. Не учтено, что %L может содержать кроме файлов еще и папки. А также, что новое рассчитанное имя файла может быть именем существующей папки.
4. Конструкция
Code:
        CounterLen = Len(FileName)
        Do While CounterLen <> 0

для посимвольного перебора не очень удачна. Тем более, начиная с Len(FileName), а не с Len(FileName) - 1. Лучше использовать InStrRev.
5. Если по Loop until not FSO.FileExists(FileFullName) скрипт возвращается в начало (Do ' Работаем пока не найдется имя не занятое файлами), то снова начинаем вычислять значение в скобках. Это не есть хорошо. Раз уж скрипт уже нашел значение номера исходного файла\папки, то надо повышать номер, пока не найдется отсутствующий, а не начить все с начала.

Кстати, нечто подобное, но по-проще (без вычисления номера исходного файла), я уже делал.
Back to top
View user's profile Send private message
kolotunbabaj



Joined: 28 Sep 2007
Posts: 13
Location: Русь, ибо славянин...

Post (Separately) Posted: Sun Sep 30, 2007 21:01    Post subject: Reply with quote

А если кнопок уже в два ряда? В сборке от IMPOMEZIA видел решение, но не знаю как это сделать. Там в начале тулбара две зелёные стрелки вызывающие "Панель инструментов: Плагины и Программы" и "Панель инструментов: Системные программы". Подскажите кто знает как?
_________________
СОБАКА тоже ЧЕЛОВЕК, только в шубе...
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Sun Sep 30, 2007 21:05    Post subject: Reply with quote

Кнопка ссылается на *.bar-файл с другой панелью. Например:

Code:

TOTALCMD#BAR#DATA
D:\dshell\startmenu.bar

D:\dshell\TOTALCMD.EXE

D:\dshell\

-1


Соответственно, можно наделать кучу панелей, на каждую из которых накидать кнопок для переключения на другие. Вот и всё.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
Georgе



Joined: 28 Aug 2007
Posts: 99

Post (Separately) Posted: Wed Oct 03, 2007 02:24    Post subject: Reply with quote

kolotunbabaj
http://darqus.org/p/forum/forum_viewtopic.php?134
Back to top
View user's profile Send private message
Zorroz



Joined: 16 Dec 2004
Posts: 308
Location: Россия, Иркутская обл., г. Ангарск

Post (Separately) Posted: Mon Oct 08, 2007 17:01    Post subject: Reply with quote

есть кнопка:
Code:
TOTALCMD#BAR#DATA
ping
?
C:\totalcmd\TOTALCMD.EXE,2



-1

ввожу айпишник, все ок, только окно закрывается. Можно как то этого избежать, что бы оно не закрывалось?
_________________
Когда ангелу обрезают крылья, он учится летать на метле...
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Mon Oct 08, 2007 19:04    Post subject: Reply with quote

Ну, например, так:

Code:
TOTALCMD#BAR#DATA
cmd /k ping
?
D:\dshell\TOTALCMD.EXE



-1

_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
Tovarishh



Joined: 16 Jun 2006
Posts: 15

Post (Separately) Posted: Sat Dec 29, 2007 03:07    Post subject: Обмен кнопками Reply with quote

В версии ТС 7 появилась возможность использовать алиасы + появились новые INI.

Вот пример переключения Ru_En или En_ru языка + wincmd.ini в меню.

Допустим тотал имеет два wincmd.ini
а %COMMANDER_PATH%\eng.Wincmd.ini -Анг
б %COMMANDER_PATH%\rus.Wincmd.ini - Рус

В каждом настройки на свой язык, то есть
в eng.Wincmd.ini установлено WCMD_ENG.LNG + startmenu Barы на анг., а в rus.Wincmd.ini установлено WCMD_RUS.LNG + startmenu + Barы на рус.

1.
В каталоге %COMMANDER_PATH%\LANGUAGE создаём два файла WCMD_ENG.ini и WCMD_RUS.ini

2.
скачиваем Hidec.exe (он скрывает консоль) и кидаем например в %COMMANDER_PATH%\Plugins\Utilities\
В WCMD_ENG.ini добавляем
Quote:
[em_set_Russian]
Cmd=%COMMANDER_PATH%\Plugins\Utilities\hidec.exe "%COMMANDER_PATH%\rus.bat"
Param=


В WCMD_RUS.ini добавляем
Quote:
[em_set_English]
Cmd=%COMMANDER_PATH%\Plugins\Utilities\hidec.exe "%COMMANDER_PATH%\eng.bat"
Param=


3.
Открываем WCMD_ENG.MNU и прописываем, где хотим, что бы отображался "переключатель"

Quote:
POPUP "Язык"
MENUITEM "Русский", em_set_Russian
END_POPUP


Затем в WCMD_RUS.MNU

Quote:
POPUP "Change Language"
MENUITEM "Switch to English", em_set_English
END_POPUP


4.
Создаём два файла в %COMMANDER_PATH%\ eng.bat и rus.bat

в eng.bat

Quote:
taskkill /IM TotalCMD.exe
ping -n 2 127.0.0.1 > nul
start /d "%COMMANDER_PATH%" TOTALCMD.exe "/I=%COMMANDER_PATH%\eng.wincmd.ini"


в rus.bat
Quote:
taskkill /IM TotalCMD.exe
ping -n 2 127.0.0.1 > nul
start /d "%COMMANDER_PATH%" TOTALCMD.exe "/I=%COMMANDER_PATH%\rus.wincmd.ini"



Теперь после rr в TC можно переключать языки





Фактически ето переключение между двумя wincmd.ini

Можно поставить и кнопки на панель

Ru_En
Quote:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\Utilities\hidec.exe "%COMMANDER_PATH%\eng.bat"

TOTALCMD.EXE,23
English


-1


En_Ru
Quote:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\Utilities\hidec.exe "%COMMANDER_PATH%\rus.bat"

TOTALCMD.EXE ,23
Русский


-1




PS: Панель не резиновая... для всех места нет!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 13, 14, 15 ... 43, 44, 45  Next
Page 14 of 45

 
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