View previous topic :: View next topic |
Author |
Message |
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Aug 27, 2011 20:56 Post subject: |
|
|
Не, не вижу, оно появилось уже после того, как я зашел в эту тему.
Quote: | Геморройный подход. Представь сколько таких команд нужно понаписать в ini для схожих задач, ужас... |
Геморрой - это встраивание в TCFS2 функции убийства запущенных ранее задач. Как ты определишь, какие из них хорошие, а какие - плохие? И вообще, не хочу я убивать никакие процессы.
Проблема подобного плана может возникнуть только для команд, которые чего-то долго ждут, а потом что-то ещё делают. И возникла она в первый раз. ИМХО, куда проще для каждой такой команды, которая ведёт себя похожим образом (а их вряд ли будет много) завести отдельный INI-ключик в секции TCFS2, в котором сохранять номер сеанса.
Flasher wrote: | Сейчас проверил с ожиданием - действительно срабатывает только с повторного, хотя такого не должно быть. Это косяк программы. Нужно у MVV спросить. |
Напишите мне в личку подробно, какая команда работает не так, как ожидается, я путаюсь в вашей беседе. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Aug 27, 2011 21:07 Post subject: |
|
|
MVV wrote: | Не, не вижу, оно появилось уже после того, как я зашел в эту тему. | Давно же ты зашёл (и не вышел), однако.
MVV wrote: | Как ты определишь, какие из них хорошие, а какие - плохие? | Это не требуется. Логика проста: все - плохие.
MVV wrote: | Проблема подобного плана может возникнуть только для команд, которые чего-то долго ждут, а потом что-то ещё делают. И возникла она в первый раз. | Всё периодически появляется первый раз, в частности недавний разговор по /p (pause).
MVV wrote: | ИМХО, куда проще для каждой такой команды, которая ведёт себя похожим образом (а их вряд ли будет много) завести отдельный INI-ключик в секции TCFS2, в котором сохранять номер сеанса. | Приведи пример с тремя подобными командами с этим ini ключиком, я пока себе не очень представляю, как это уменьшит объём написанного.
MVV wrote: | Напишите мне в личку подробно, какая команда работает не так, как ожидается, я путаюсь в вашей беседе. | Я же написал какая ("См. выше, добавил !=1 красным."). |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Aug 27, 2011 21:25 Post subject: |
|
|
Flasher wrote: | Давно же ты зашёл (и не вышел), однако. |
Я около часа писал ответ) как видишь, в нём есть цитаты частей постов, которые вы за это время уже успели поудалять или поисправлять.
Flasher wrote: | MVV wrote: | Как ты определишь, какие из них хорошие, а какие - плохие? | Это не требуется. Логика проста: все - плохие. |
Хреновая логика. Будут висеть на ожидании двух независимых событий два процесса, а ты оба прибьёшь.
Flasher wrote: | Приведи пример с тремя подобными командами с этим ini ключиком, я пока себе не очень представляю, как это уменьшит объём написанного. |
Code: | cmd1=set_tcini(TCFS2, cmd1s, #S) команда1 команда2 ... delay(10000) if(tcini(TCFS2, cmd1s, # == #S), командаN+командаM+..., ничего)
cmd2=set_tcini(TCFS2, cmd2s, #S) команда1 команда2 ... delay(10000) if(tcini(TCFS2, cmd2s, # == #S), командаN+командаM+..., ничего) |
Аналогично для остальных команд, которые чего-то ждут. Ранее мы уже писали "критическую секцию" для команд, чтобы не допустить выполнения нескольких копий команды одновременно, проверка сеанса выполняется аналогичным образом, разве что не блокирует вход в команду для новых копий, а наоборот, указывает уже запущенным, что их прервали. Символом #S обозначен номер сеанса (пока не знаю, как лучше назвать, но точно с решётки) - это будет внутренний макрос TCFS2.
Flasher wrote: | MVV wrote: | Напишите мне в личку подробно, какая команда работает не так, как ожидается, я путаюсь в вашей беседе. | Я же написал какая ("См. выше, добавил !=1 красным."). |
Ну попросил же нормальным языком написать, что и как не работает, и как должно работать. Это так сложно? Любишь ты стрелки кидать вместо того чтобы дать ответ на чётко поставленный вопрос. Очевидное для тебя может быть абсолютно неочевидным для других. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Aug 27, 2011 21:46 Post subject: |
|
|
MVV wrote: | Хреновая логика. Будут висеть на ожидании двух независимых событий два процесса, а ты оба прибьёшь. | Нормальная логика. Прибью два мешающих процесса. Вызывая команду я прекрасно осознаю, для чего это делается. Вариантов совпадения времени вызова разнородных команд, где используется delay, практически быть не должно.
MVV wrote: | Аналогично для остальных команд, которые чего-то ждут. | Ты привёл муляж, а для понимания требуются конкретные примеры, аналогично этому. Там у тебя явно не одна строчка.
MVV wrote: | Ну попросил же нормальным языком написать, что и как не работает, и как должно работать. Это так сложно? Любишь ты стрелки кидать вместо того чтобы дать ответ на чётко поставленный вопрос. | Какие стрелки? Каким языком? Окстись. Я дал ссылку с ответом на чётко поставленный вопрос MVV wrote: | какая команда работает не так, как ожидается |
MVV wrote: | Очевидное для тебя может быть абсолютно неочевидным для других. | В данном случае это к тебе больше относится. Я в поставленной конкретно вопросе дополнительные не увижу при всём желании.
А теперь в подробностях (то, что сперва умолчалось в запросе):
Команда должна сменять панели при первом нажатии кнопки, т.к. происходит проверка значения ключа. В одном случае ключ при несовпадении принимает значение 1, и выполняется юзеркоманда вызова дефолтного бара, в другом - ноль, и выполняется юзеркоманда вызова второго бара. Но почему-то команда срабатывает верно только со второго раза. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Aug 28, 2011 02:01 Post subject: |
|
|
Flasher wrote: | MVV wrote: | Хреновая логика. Будут висеть на ожидании двух независимых событий два процесса, а ты оба прибьёшь. | Нормальная логика. Прибью два мешающих процесса. Вызывая команду я прекрасно осознаю, для чего это делается. Вариантов совпадения времени вызова разнородных команд, где используется delay, практически быть не должно. |
Повторюсь, хреновая логика. Невозможно знать наперёд, какие процессы будут запущены в тот момент, и никак нельзя слепо убивать всё, что попадёт под руку. Если ты считаешь, что тебе достаточно одной команды с delay, то тебе тем более не составит труда один раз написать строчку с запоминанием номера сеанса.
Flasher wrote: | MVV wrote: | Аналогично для остальных команд, которые чего-то ждут. | Ты привёл муляж, а для понимания требуются конкретные примеры, аналогично этому. Там у тебя явно не одна строчка. |
Там было через GetTickCount, который, как написано в дополнении, не работает. Вариант через номер сеанса куда проще (@S - псевдо-макрос, возвращающий этот самый номер, пока не знаю, как лучше его назвать):
Code: | cmd1=set_tcini(TCFS2, Cmd1, 0) run_item(set_bar, 1), test(tcini(TCFS2, Bar, # != 1)) | set_tcini(TCFS2, Cmd1, @1) run_item(set_bar, 2) delay(15000) if(tcini(TCFS2, Cmd1, # == @S), run_item(set_bar, 1)) |
Flasher wrote: | Какие стрелки? Каким языком? Окстись. Я дал ссылку с ответом на чётко поставленный вопрос MVV wrote: | какая команда работает не так, как ожидается |
|
Мог бы и подробнее написать, как именно не так она работает))
Flasher wrote: | MVV wrote: | Очевидное для тебя может быть абсолютно неочевидным для других. | В данном случае это к тебе больше относится. Я в поставленной конкретно вопросе дополнительные не увижу при всём желании. |
Если меня просят прояснить что-то, я обычно проясняю, а не начинаю возмущаться, что я это писал по сто раз на двадцати предыдущих страницах, и что ответ можно собрать из тех двух десятков постов.
Flasher wrote: | Команда должна сменять панели при первом нажатии кнопки, т.к. происходит проверка значения ключа. В одном случае ключ при несовпадении принимает значение 1, и выполняется юзеркоманда вызова дефолтного бара, в другом - ноль, и выполняется юзеркоманда вызова второго бара. Но почему-то команда срабатывает верно только со второго раза. |
Это уже по существу. Можешь же, когда захочешь.
Обсуждение того, что конкретно и почему не работает в команде, я продолжу там. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Aug 28, 2011 20:48 Post subject: |
|
|
MVV wrote: | Невозможно знать наперёд, какие процессы будут запущены в тот момент, и никак нельзя слепо убивать всё, что попадёт под руку. | Почему это нельзя знать наперёд? С чего ты взял? А убивать не всё, что попадёт под руку, а все отличные от запускаемой копии TCFS2, которые мне нафиг не сдались, п.ч. я использую уже другую фичу, которой эти процессы, (а в 99% - один процесс) будет только создавать помехи.
MVV wrote: | Там было через GetTickCount, который, как написано в дополнении, не работает. Вариант через номер сеанса куда проще (@S - псевдо-макрос, возвращающий этот самый номер | Ну, это уже поприличней смотрится.
MVV wrote: | Мог бы и подробнее написать, как именно не так она работает)) | Мог бы, если бы попросили, что конкретно требуется описать. Телепатией не владею.
MVV wrote: | Если меня просят прояснить что-то, я обычно проясняю, а не начинаю возмущаться, что я это писал по сто раз на двадцати предыдущих страницах, и что ответ можно собрать из тех двух десятков постов. | Не передёргивай. Возмущаться ты начал и ничего кроме команды не запросил, т.ч. неча пинять на зеркало.
MVV wrote: | Это уже по существу. Можешь же, когда захочешь | Я всегда могу и отвечаю, когда конкретизируют, а не раздувают сопли. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10261 Location: Россия, Саратов
|
(Separately) Posted: Sun Aug 28, 2011 22:05 Post subject: |
|
|
Flasher
MVV
А общаться без подобных обменов "личными любезностями" — никак? Обязательно нужно, чтобы модератор вмешался? Сто раз говорилось, что подобные вещи, если уж в них есть позарезная необходимость — в ЛС. Публичную перепалку прекращаем. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Wed Aug 31, 2011 18:50 Post subject: |
|
|
Задача более чем решена (MVV, с благодарностью). _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
MC Hummer
Joined: 20 Aug 2011 Posts: 5
|
(Separately) Posted: Sun Sep 04, 2011 14:26 Post subject: |
|
|
Решил не создавать новою тему, т.к. мой вопрос так же относится к панели инструментов.
Есть ли в ТС команда, переключающая режим сортировки каталогов с Всегда по имени на Как файлов (также и по времени), и возможность вынесения её на панель инструментов в виде кнопки? |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10261 Location: Россия, Саратов
|
(Separately) Posted: Sun Sep 04, 2011 14:36 Post subject: |
|
|
MC Hummer
Очень интересная аргументация. Предлагается все функции, для которых теоретически можно создать кнопку, считать относящимися к панели инструментов и загонять в тему про их автоматическую смену?
Короче, замечание за оффтоп.
А встроенная команда, как тут потом sa правильно подсказал, это cm_SwitchDirSort. (Его пост я удалил, а свою первоначальную ошибку исправил прямо здесь, чтобы число оффтопных постов не умножать.) _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sun Jan 22, 2012 15:38 Post subject: |
|
|
Вновь возращаюсь к былому - смена одной панели инструментов на другую с автоматическим возвратом (15 сек). Как быть, если требуется "закрепить" вторую панель (кнопка), т.е. не дать ей смениться на первую через ~15 сек. Убивать процесс TCFS2.exe мы ведь так и не научились?
Quote: | [em_1]
button=wcmicons.dll
cmd=OPENBAR %COMMANDER_PATH%\BAR\MAIN.BAR
[em_2]
button=wcmicons.dll
cmd=OPENBAR %COMMANDER_PATH%\BAR\EXT.BAR
[em_123]
button=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=/ei quick_bar
path=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
|
Quote: | quick_bar=set_tcini(TCFS2, #0, 0) run_item(set_bar, 1), test(tcini(TCFS2, Bar, #)==2) | set_tcini(TCFS2, #0, @sid) run_item(set_bar, 2) delay(15000) if(tcini(TCFS2, #0, # == @sid), run_item(set_bar, 1)) |
Quote: | set_bar=if(#1 == 1, tem(em_1)) if(#1 == 2, tem(em_2)) if(#1 > 0, set_tcini(Layout, ButtonBar, 1), run_item(tb0)) set_tcini(TCFS2, Bar, #1), , set_bar(1) |
_________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 22, 2012 15:42 Post subject: |
|
|
ask-rus
Так убивать процесс не обязательно через саму TCFS2. Создай kill-команду, повесь на клавиши и вызывай, когда требуется. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sun Jan 22, 2012 15:55 Post subject: |
|
|
Flasher
taskkill? Но как бы правильнее? По PID? _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 22, 2012 16:05 Post subject: |
|
|
ask-rus
Где ж ты PID возмешь-то?
taskkill /F /IM TCFS2.exe /T либо tskill TCFS2.exe |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Thu Jan 26, 2012 10:10 Post subject: |
|
|
А смысл убивать? Просто выполняем команду, которая где-то прописывает флаг, который будет говорить первой копии, что возвращать панель не нужно. Или же тупо пишем 0 в ключ quick_bar секции TCFS2 - тогда работающая копия после ожидания увидит, что после неё уже похозяйничали, и ничего не сделает. Я думал, этот вопрос решен давным давно... _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
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
|