Страница 5 из 11

Добавлено: Чт июн 09, 2011 15:56
ask-rus
Flasher писал(а):потом перезапуск
Начну с конца, перезапуск может быть осуществлен посредством скрипта без использования сторонних утилит?

Добавлено: Чт июн 09, 2011 16:05
Flasher
А по скрипту, что по ссылке, незаметно?

Добавлено: Чт июн 09, 2011 16:10
ask-rus
Flasher писал(а):А по скрипту, что по ссылке, незаметно?
А, это и есть перезапуск, то-то я ищу в нем, что бы сравнить, да изменить. :D Отлично, тогда к началу.
Flasher писал(а):Скрипт может. Тут всего-то - найти строку, сравнить и изменить
Какой именно скрипт?

Добавлено: Чт июн 09, 2011 16:23
Flasher
ask-rus писал(а):Какой именно скрипт?
Которого ещё нет. Это в теории. Примерно так же, как и в первом, но с некоторыми поправками по сравнению.

Добавлено: Чт июн 09, 2011 16:57
ask-rus
Flasher писал(а):Примерно так же, как и в первом, но с некоторыми поправками по сравнению.
Проще говоря, отучить его от хелпера и присвоить перезапуск после выполнения.

Добавлено: Пт июн 10, 2011 09:06
Batya
Всё легко делается с помощью портабельной утилиты TCMC.

Добавлено: Пт июн 10, 2011 09:32
Flasher
И как ты ей поменяешь строку в ini-файле или запустишь TC?
+
ask-rus писал(а):без использования сторонних утилит

Добавлено: Пт июн 10, 2011 15:45
Batya
Flasher
А скрипт, это сторонняя утилита? ;)
Насколько я понял, ask-rus хочет портабельности, а хэлпер этому мешает.

Добавлено: Пт июн 10, 2011 15:50
Flasher
Batya писал(а):А скрипт, это сторонняя утилита?
Судя по всему, нет. TCMP - да. Про Хелпер я уже всё сказал, и никакая TCMP для правки ini-файла не нужна и, в принципе, ничем помочь в поставленной задаче не сможет.
Как я понял, опубликованная недавно KIT Universal Presets с пресетами должна уметь заменять механизм правки/перезапуска. Хотя не знаю, будут ли там If-ы, чтобы задавать условие.
А так то же самое можно реализовать в UTCCE.

Добавлено: Пт июн 10, 2011 16:21
ask-rus
Значит, всё-таки одним скриптом без хелпера никак?
Flasher писал(а):TCMP - да.
TCMP или TCMC?
Flasher писал(а):kIT Universal Presets

Добавлено: Пт июн 10, 2011 16:26
Flasher
ask-rus писал(а):Значит, всё-таки одним скриптом без хелпера никак?
Этот вывод из каких моих слов исходит?
ask-rus писал(а):kIT Universal Presets
Может, без флуда обойдёмся? См. как написано в мануале.

Добавлено: Пт июн 10, 2011 16:54
ask-rus
Flasher писал(а):Этот вывод из каких моих слов исходит?
Каких? Не нахожу.
Flasher писал(а):Может, без флуда обойдёмся? См. как написано в мануале.
Обойдемся, ошибка автора мануала.

Добавлено спустя 3 минуты:
Batya писал(а):Всё легко делается с помощью портабельной утилиты TCMC.
Если действительно легко, как это делается? :oops:

Добавлено: Пт июн 10, 2011 17:06
Flasher
ask-rus писал(а):Каких? Не нахожу.
Зачем тогда задавать такой вопрос, на который я уже ранее ответил?
ask-rus писал(а):ошибка автора мануала
А автор мануала и автор утилиты - это разные люди? В справке написано полное название, оно может легко отличаться от сокращения в имени файла. Стандартная практика.
ask-rus писал(а):Если действительно легко, как это делается?
С помощью TCMC - никак. Он просто неверно понял суть задачи или не увидел её. Всё делается на vbs стандартными методами.

Добавлено: Пт июн 10, 2011 17:23
Batya
ask-rus писал(а):Если действительно легко, как это делается?
Сильно не извращаясь, получилось так:

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

'Вкл\выкл внутренние ассоциации в TC
Option Explicit
Dim FSO, WSH, TCMC, F, Str1, Str2, Text, TC
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")

TC   = "%COMMANDER_PATH%\TotalCmd.exe"
F    = "%COMMANDER_PATH%\WinCmd.ini"
Str1 = "[Associations]"
Str2 = "[-Associations]"
TCMC = "%COMMANDER_PATH%\Utils\TCMC\TCMC.exe"

TC   = GetPath(TC)
F    = GetPath(F)
TCMC = GetPath(TCMC)

Text = FSO.OpenTextFile(F, 1).ReadAll

If bCheck(Text, Str1) Then
  Text = Replace(Text, Str1, Str2, 1, -1, 1)
Else
  Text = Replace(Text, Str2, Str1, 1, -1, 1)
End If
FSO.OpenTextFile(F, 2).Write Text

WSH.Run """" & TCMC & """ CM24340", 1, True 'Выход
WSH.Run """" & TC   & """"        , 1, True 'Запуск TC

Set WSH = Nothing
Set FSO = Nothing
WScript.Quit

Function bCheck(pText, pFind)
   bCheck = (InStr(1, pText, pFind, 1) > 0)
End Function

Function GetPath(pPath)
  GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
End Function
Flasher писал(а):и никакая TCMP для правки ini-файла не нужна и, в принципе, ничем помочь в поставленной задаче не сможет.
TCMC я использую, чтобы послать TC команду выхода. Очень не люблю я имитацию нажатия клавиш.

Добавлено: Пт июн 10, 2011 17:28
Flasher
Batya писал(а):TCMC я использую, чтобы послать TC команду выхода. Очень не люблю я имитацию нажатия клавиш.
Понимаю, но это так мелочно, чтобы использовать целую утилиту для такой ерунды. В любом случае Alt+F4 у себя никто не меняет. Это стандарт.

P.S. Дважды тыкать на одну ошибку вовсе не обязательно.