Обсуждение программ nnCron и nnCron LITE
by Likvi139 » Tue, 01 Dec 2015, 17:14
Добрый день. Вопрос к не занятым знатокам nncron'a. При копировании текста (ячейка с одним словом в Excel) нужно проверить, что было скопировано(т.е. хотел бы обращаться к CLIPBOARD). Если скопировано слово Aaa то делать одно, если слово Bbb то делать другое, а если слова Ccc то делать третье, а если ячейка, откуда нужно копировать оказалась пуста, то четвертое (тут еще один вопрос - как средствами nncron определить пустоту ячейки в excel?) Хотел сделать эти операции через сравнение содержимого буфера обмена, но не нашел правильного синтаксиса и вообще возможности так сделать.
-
Likvi139
-
- Posts: 8
- Joined: Thu, 10 Sep 2015, 17:10
by VoidVolker » Tue, 01 Dec 2015, 20:37
- Code: Select all
#( Задача_202601122015 NoActive SingleInstance Action: CLIPBOARD S" AAA" COMPARE 0= IF \ AAA ELSE CLIPBOARD S" BBB" COMPARE 0= IF \ BBB" ELSE CLIPBOARD S" CCC" COMPARE 0= IF \ CCC ELSE CLIPBOARD NIP 0= IF \ Пустая строка ELSE \ Все остальные случаи THEN THEN THEN THEN )#
С плагином extwords: - Code: Select all
#( Задача_202601122015 NoActive SingleInstance Action: CLIPBOARD SCASE
S" AAA" SOF
ENDSOF S" BBB" SOF
ENDSOF S" CCC" SOF
ENDSOF S" " SOF
ENDSOF 2DUP SOF
ENDSOF ENDSCASE )#
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by Likvi139 » Wed, 02 Dec 2015, 09:52
Спасибо! Но отрабатывает только на ААА. На остальное выдает ошибку  Не могли бы вы подсказать что не так? - Code: Select all
#( Задача_Clipboard Time: 2 13 18 9 * 2015 NoActive NoDel SingleInstance Action: CLIPBOARD S" AAA" COMPARE 0= IF \ AAA MSG: "Вариант А" ELSE S" BBB" COMPARE 0= IF \ BBB MSG: "Вариант B" ELSE S" CCC" COMPARE 0= IF \ CCC MSG: "Вариант С" ELSE NIP 0= IF \ Пустая строка ELSE \ Все остальные случаи THEN THEN THEN THEN )# http://i67.fastpic.ru/big/2015/1202/61/ ... f59161.png
-
Likvi139
-
- Posts: 8
- Joined: Thu, 10 Sep 2015, 17:10
by Likvi139 » Wed, 02 Dec 2015, 10:53
Попробовал немного изменить код, вот что вышло. В результате при копировании этого текста он отрабатывает (правда часто после выдает ошибка в стеке Action). Но возникла другая проблема - при копировании ячейки в Excel помимо самого слова в буфере оказывается скрытй символ переноса строки, как его вписать в проверку в nncron'e? чтобы проверял слово+возврат каретки (идет сразу за словом). - Code: Select all
#( Clipboard_3_realtest Time: 2 13 18 9 * 2015 NoActive NoDel SingleInstance Action:
CLIPBOARD S" Terminal" COMPARE 0= IF \ AAA MSG: "Вариант Terminal" THEN
CLIPBOARD S" ACD" COMPARE 0= IF \ BBB MSG: "Вариант ACD" THEN CLIPBOARD S" Pickup" COMPARE 0= IF \ CCC MSG: "Вариант Pickup" ELSE NIP 0= IF \ Пустая строка MSG: "пусто" ELSE \ Все остальные случаи MSG: "другой вариант" THEN THEN )#
-
Likvi139
-
- Posts: 8
- Joined: Thu, 10 Sep 2015, 17:10
by dothen » Wed, 02 Dec 2015, 11:25
Можно так: - Code: Select all
#( Задача_Clipboard \ NoActive SingleInstance WatchClipboard: "*" Action: CLIPBOARD S" AAA" CRLF S+ COMPARE 0= IF MSG: "Вариант А" ELSE CLIPBOARD S" BBB" CRLF S+ COMPARE 0= IF MSG: "Вариант B" ELSE CLIPBOARD S" CCC" CRLF S+ COMPARE 0= IF MSG: "Вариант С" ELSE CLIPBOARD MsgBox THEN THEN THEN )#
# для проверки # AAA # BBB # CCC #
-
dothen
-
- Posts: 187
- Joined: Mon, 16 Mar 2015, 04:58
by Likvi139 » Wed, 02 Dec 2015, 13:59
dothen, спасибо, тоже работает но не совсем, если там пробел в слове, как записать? а то первые два вариант проходят, а третий, где 2 слова и проблем между ними - нет. Столкнулся еще с одной проблемой - при использовании вашего варианта Excel ругается - " Не удается очистить буфер обмена. Возможно буфер обмена используется другим приложением"
-
Likvi139
-
- Posts: 8
- Joined: Thu, 10 Sep 2015, 17:10
by VoidVolker » Wed, 02 Dec 2015, 16:42
Но отрабатывает только на ААА. На остальное выдает ошибку
Исправил. Likvi139 wrote:тоже работает но не совсем, если там пробел в слове, как записать? а то первые два вариант проходят, а третий, где 2 слова и проблем между ними - нет.
Как есть: - Code: Select all
S" Фраза с пробелами"
Вероятно там не совсем пробелы или кодировка другая. Likvi139 wrote:Не удается очистить буфер обмена. Возможно буфер обмена используется другим приложением"
Вероятно проблемы с кодировками или еще с чем-то. Версии ОС, МСО, крона?
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by Likvi139 » Wed, 02 Dec 2015, 16:58
Спасибо за ответы, буду пробовать. VoidVolker, версия ОС - Windows 7 Профессиональная 64 разрядная, МСО - Office 2010, крон - v 1.93b13.
-
Likvi139
-
- Posts: 8
- Joined: Thu, 10 Sep 2015, 17:10
by VoidVolker » Wed, 02 Dec 2015, 19:04
У офиса есть отдельный монитор буфера обмена - возможно баг в нем. Можно попробовать использовать другие кодировки.
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by dothen » Wed, 02 Dec 2015, 19:40
Likvi139 wrote:... Столкнулся еще с одной проблемой - при использовании вашего варианта Excel ругается - " Не удается очистить буфер обмена. Возможно буфер обмена используется другим приложением"
Может виноват WatchClipboard:- Code: Select all
#( Задача_Clipboard \ NoActive SingleInstance MonitorResponseTime \ сохраняем значение в стеке 2000 TO MonitorResponseTime \ устанавливаем новое (2000 мс) WatchClipboard: "*" TO MonitorResponseTime \ возвращаем старое значение Action: CLIPBOARD S" AAA" CRLF S+ COMPARE 0= IF MSG: "Вариант А" ELSE CLIPBOARD S" BBB" CRLF S+ COMPARE 0= IF MSG: "Вариант B" ELSE CLIPBOARD S" CCC" CRLF S+ COMPARE 0= IF MSG: "Вариант С" ELSE CLIPBOARD MsgBox THEN THEN THEN )#
Или совсем убрать WatchClipboard: и проверять буфер обмена (запускать задачу) вручную.
-
dothen
-
- Posts: 187
- Joined: Mon, 16 Mar 2015, 04:58
Return to nnCron forum (Russian)
Who is online
Users browsing this forum: No registered users and 1 guest
|
|