Автокликер Clickermann :: Форум

Основной раздел => Ошибки => Topic started by: Золотой on September 27, 2016, 10:44:03 AM

Title: Кавычки
Post by: Золотой on September 27, 2016, 10:44:03 AM
Придумал, кто-нибудь "костыли" помогающие бороться пожиранием Clickermann КАВЫЧЕК в текстовых файлах?
Я в стороннем редакторе ищу и выделяю все кавычки, затем заменяю их на ККК и в таком виде скармливаю Clickermann.
Делаю необходимые действия для данного скрипта с данным текстовым документом и сохраняю результат.
При выводе  Подпрограммой проверяю в строках наличие ККК, сначала в начале и конце строки, затем разбиваю строку на подстроки используя ККК, как разделитель.
Вывод строки только нажатием клавиш. Вместо ККК нажимаются кавычки, между ними подстроки из массива.
Но, имеющееся решение, меня категорически неустраивает по целому ряду недостатков.
Title: Re: Кавычки
Post by: i0 on September 27, 2016, 02:26:05 PM
для облегчения ходьбы можно использовать вместо редактора консольную утилиту для замены текста в файле
дальше по тому же алгоритму
Title: Re: Кавычки
Post by: Atas on September 27, 2016, 03:18:34 PM
Всем привет! :)
Вот нехилая утилита - Swiss File Knife (SFK) (http://stahlworks.com/dev/swiss-file-knife.html), постоянно выручает как с кавычками, так и с сортировкой.

Для замены текста в файле: например - меняем двойные кавычки на одинарные
Code: [Select]
sfk replace input.txt /\"/'/ -yes
Для сортировки строк файла:
Code: [Select]
sfk filter input.txt +sort +tofile output.txt
Затем, можно отслеживать завершение работы cmd через буфер обмена (если применялось что-то типа Bat To Exe Converter), либо по появлению и закрытию окна командной строки по HWND (второе надежней, т.к. КМ и cmd.exe могут подраться за монопольный доступ к буферу обмена).
Title: Re: Кавычки
Post by: YoClickamann on September 30, 2016, 01:39:04 PM
Только что заглянул в файл справки Нирсофта About/Using NirCMD, и сразу там встретилось в таблице "Special String Sequences", что вместо двойных кавычек в команде можно писать ~q, может поможет и тут, если передавать переменные через нир. Нир наверняка умеет копировать/читать в буфер, а раз уж функция keystring() в кликере не работает правильно, то можно попытаться воспользоваться и нировскими костылями. Кстати, было б круто использовать такие подстановки для строк в Кликермене вроде нировских ~q, ~n (для обозначения новой строки).

Или в кликере в строках как-то можно писать абзац и табуляцию? Иначе придётся городить огород с массивами, разбиением на строки, заменой, сборкой результата обратно в одно целое.
Title: Re: Кавычки
Post by: Vint on September 30, 2016, 02:09:11 PM
Не касательно к теме обсуждения.

а раз уж функция keystring() в кликере не работает правильно...

Функция KEYSTRING работает правильно! Она всегда работала правильно.
Все упорно предполагают что она должна вводить(печатать) символы из текстовой переменной. Но она для этого не предназначена.
KEYSTRING - нажимает виртуальные клавиши соответственно символам строки. Если на клавише несколько символом ( внезапно ;D), то сработает в зависимости от режима клавиатуры и языка ввода.
Все SHIFT, CTRL, ALT, CAPSLOCK и ноутбуковские спецкнопки с включенным языком на это влияют.

KEYSTRING это агрегатор KEYPRESS , что бы избавится от последовательностей вида
Code: (clickermann) [Select]
KEYPRESS(#q)
WAITMS(30)
KEYPRESS(#w)
WAITMS(30)
KEYPRESS(#e)
WAITMS(30)
KEYPRESS(#r)
WAITMS(30)
KEYPRESS(#t)
WAITMS(30)
KEYPRESS(#y)
WAITMS(30)

Давно просили ввести другую функцию, которая будет вводить (или что там... выводить?) последовательность символов.
Она очень нужна, но это другая функция
Title: Re: Кавычки
Post by: YoClickamann on September 30, 2016, 02:30:43 PM
сработает в зависимости от режима клавиатуры и языка ввода.
Все SHIFT, CTRL, ALT, CAPSLOCK и ноутбуковские спецкнопки с включенным языком на это влияют.
Она очень нужна, но это другая функция

В том то и соль, что ни одну клавишу-модификатор нельзя использовать с кейстрингом, хотя это очевидно нужно; это и порождает множество лишних строк кода в виде пар ctrlUp +ctrlDown. А насколько было бы проще, если б в самой функции keystring() можно было б применять подстановки вроде #CTRL?!! Которые кстати уже есть в виде констант кодов клавиш. Это ещё не говоря про привязку, с ней та же проблема, её тоже нужно отключать, чтоб ввести в окно клавиши ctrl или shift.

Это другая фунция и другая история  :)
Title: Re: Кавычки
Post by: Vint on September 30, 2016, 02:33:34 PM
А насколько было бы проще, если б в самой функции keystring() можно было б применять подстановки вроде #CTRL?!!
Это да, было бы хорошо. Но все уже об этом помечтали и пошли делать по другому.
Я на заре пользования даже пробовал их туда вставить  :D
Title: Re: Кавычки
Post by: Vint on September 30, 2016, 02:42:39 PM
Это ещё не говоря про привязку, с ней та же проблема, её тоже нужно отключать, чтоб ввести в окно клавиши ctrl или shift.
Я пол интернета облазил, когда искал решение нажимать с ctrl или с shift через POSTMESSAGE.
Решения не нашёл. Вычитал, что оказывается в системе помимо буфера клавиатуры есть ещё какие-то флаги влияющие на то с шифтом выводится символ или нет. И вот их нужно менять, а эти флаги только в одном экземпляре и они относятся только к активному окну. В неактивное окно посылаем сообщение, а система читает флаги из активного. И скорее всего отдельно их не задать. Если исхитриться, то можно поменять только в активном на время, но это будет влиять при работе. Смысл тогда в привязке если шифт с контролом будут включаться когда захотят.
Title: Re: Кавычки
Post by: YoClickamann on September 30, 2016, 03:06:20 PM
Я пол интернета облазил, когда искал решение нажимать с ctrl или с shift через POSTMESSAGE. Решения не нашёл.
Полынтернета в смысле русского? Или MSDN тоже, который советуется в справке? Может, нашим программерам не нужны эти постмессаджи или они спрашивают об этом на буржуйских сайтах.

Вычитал, что оказывается в системе помимо буфера клавиатуры есть ещё какие-то флаги влияющие на то с шифтом выводится символ или нет. И вот их нужно менять, а эти флаги только в одном экземпляре и они относятся только к активному окну.
Это что-то вроде 16-ого кода-псевдонима для клавиш, который вычисляется методом сложения кодов отдельных кодов клавиш, входящих в клавиатурную комбинацию? Или это другое и задаётся по-другому?
Title: Re: Кавычки
Post by: Vint on September 30, 2016, 03:11:17 PM
MSDN тоже немного. Через переводчик.
Остальное не в курсе.

Пол интернета, конечно образно. Но пару раз очень долго посидел пока не надоело.

Мне привязка собственно не нужна. Больше того, я её не люблю :D. В начале тоже был восторг, эйфория от потенциальных возможностей. На практике это почти никогда не нужно.
В крайнем случае есть виртуалка и VDS. Хоть обзапускайся кликеров.
Title: Re: Кавычки
Post by: YoClickamann on September 30, 2016, 10:28:02 PM
Мне привязка собственно не нужна. Больше того, я её не люблю :D. В начале тоже был восторг, эйфория от потенциальных возможностей. На практике это почти никогда не нужно.
В крайнем случае есть виртуалка и VDS. Хоть обзапускайся кликеров.

За годовую цену ВДСа я лучше куплю себе парочку новых компов :) Были б у всех вдсы, так не нужны были негры.
А как же с привязкой? Ведь вы же где-то сами писали, что вроде и сам автор программы пропагандирует привязку. Да и как же сделать нужное действие в фоне? А что, неужели ни в одном другом кликере нету такого режима привязки?
Title: Re: Кавычки
Post by: Vint on October 03, 2016, 08:24:07 AM
Какие же дешёвые у вас компы стали  ;D
Автор пропагандирует, я нет.

Пару действий можно и сделать. Послать POSTMESSAGE если возможно.

Есть конечно. Но большинство "проблем" с работой с неактивными окнами  относится не к кликерам, а к самим программам.
Title: Re: Кавычки
Post by: Cleoss on June 01, 2017, 07:08:33 PM
Темо кавычег нираскрыдо11
Может, я чё-то там и пропустил, как всегда))
Но как к примеру вставить текст с кавычками в буфер для скрипта отсюда (http://crapware.aidf.org/forum/index.php?topic=3255.msg22161#msg22161), конкретно интересен этот кусок листинга:

Code: (clickermann) [Select]
$clpbd=strconcat("if_picture_in (",$xm+11,",",$ym+11,", ",$xmm-10,",",$ymm-10,", ",$fl3,") if_picture_in ($_xmax-",$_xmax-($xm+11),",$_ymax-",$_ymax-($ym+11),", $_xmax-",$_xmax-($xmm+10),",$_ymax-",$_ymax-($ymm+10),", ",$fl3,")")
toclip($clpbd)

А то текст конкатенируется без кавычек, а как их тут экранировать, я не в курсах(
Может, попробовать /"?  :D