Author Topic: Товарищи - суть в том... (срочное)  (Read 8738 times)

0 Members and 1 Guest are viewing this topic.

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #15 on: May 05, 2017, 11:03:34 AM »
Принято. спс

Теперь грандиозный вопрос. Блокнот! Открываю, вставляю инфу, проверяю колво строк, Выхожу?!!
Так как инфа изменяется, при закрытие выбивает дополнительное окно, сохранить мол? Я перепробовал все что мог при отвязанном - KD(#alt)kp(#f4)KU(#alt), варивант kp(#alt)LC(00,00), вариант sendmessage, и последний публикую, даже задержки пробовал 1сек - тоже бездыханно. о ужас какой. Подскажите пожалуйста, как правильно сохранить и выйти? 

Code: (clickermann) [Select]
EXECUTE("fonts.txt")     
HSET(wndfind("fonts.txt — Блокнот"),1)
WAIT(1)
SENDMESSAGE($_hwnd,0x0010,0,0)
WAIT(1)
HSET(wndfind("fonts.txt — Блокнот"),0)
WAIT(1)
HSET(wndfind("Блокнот"),1)
WAIT(1)
LCLICK(100,126)
HALT

И еще вопрос. Есть поля для заполнения данными, данные неизменны. Можно ли в скрипт прописать их как
Code: (clickermann) [Select]
ВСТАВИТЬ("мопед123")
Начинаю соображать, что вроде только как через присвоение значения переменной это делается, верно?
« Last Edit: May 05, 2017, 12:08:02 PM by Loginow »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #16 on: May 05, 2017, 12:31:36 PM »


Или выводи в лог то, что не видишь
Code: (clickermann) [Select]
EXECUTE("fonts.txt")
WAIT(1)  // пауза должна быть ЗДЕСЬ, а не где попало! Это время на запуск блокнота.
$hwnd = wndfind("fonts.txt — Блокнот")
LOGWRITE("$hwnd  ", $hwnd)
HALT

У меня выводит 0, т.е. не нашло окна с таким заголовком. У меня в XP тире короткое, поэтому заменив на "fonts.txt - Блокнот" всё стало определяться.
Что хочу сказать.
Надеюсь ты не вбивал заголовок руками в Word-е? Имя нужно копировать из редактора окон или сторонней программы менеджера окон  типа InqSoft Window Scanner.
Или писать часть имени "Блокнот" или "fonts.txt". Второй предпочтительней, т.к. в разных системах окно блокнота называется по разному.

Команда
HSET(wndfind("fonts.txt — Блокнот"),0)
лишняя

Не вставляет текст, потому что пытается вставить не туда. Поводи курсором над блокнотом и ты поймёшь, что основное окно с заголовком (которое мы нашли) имеет один HWND, а поле ввода - это другое окно класса Edit с другим HWND и заголовка у него нет.

Ты просто обучаешься на блокноте или это реальная задача?
Просто рано ты полез в привязку. Прямо совсем рано. Зачем она нужна.

Ты меньше шифруйся, если есть возможность покажи приложение с которым работаешь.
« Last Edit: May 05, 2017, 12:33:41 PM by Vint »


Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #17 on: May 05, 2017, 02:21:43 PM »
Ахахахах) Доброта  ;)

Изначально копировал из Менеджер окон, не работало, я химичил много, где-то стирал что-то, менял и в итоге мог от руки написать, действительно. Усвоил.

Quote
Команда
HSET(wndfind("fonts.txt — Блокнот"),0)
лишняя

То есть на отвязку в таких случаях можно не отвлекаться, привязка онли?
годно)

Quote
а поле ввода - это другое окно класса Edit с другим HWND и заголовка у него нет.

я видел, пытался переключить на всплывающее окно, но у меня не вышло. Сделал  на отвязке через вход для черных. Закончив все действия:
Code: (clickermann) [Select]
KEYPRESS(#ESC)

WAITMS(50)
LCLICK(22,30)
WAITMS(50)
LCLICK(70,101)
WAITMS(50)
HSET($hwnd1,1)
WAITMS(50)
SENDMESSAGE($hwnd1,0x0010,0,0)
  HALT

Обучаюсь на блокноте, юлить не буду. Создаю автономную работу пк, для парсинга сайтов (пример Али, на выгодные цены). Смогу выиграть очень много времени.
Приложение Content Downloader II ver.2.79
« Last Edit: May 05, 2017, 02:24:17 PM by Loginow »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #18 on: May 05, 2017, 02:35:37 PM »
То есть на отвязку в таких случаях можно не отвлекаться, привязка онли?
годно)
Новая привязка отменит старую.
Ну если очень нужно, то
Code: (clickermann) [Select]
HSET(0, 0)
wndfind не имеет смысла, окна то нет.


Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #19 on: May 05, 2017, 04:05:29 PM »
и все таки, в чем моя ошибка? Ну я реал не понимаю((
Code: (clickermann) [Select]
EXECUTE("1.txt")      // опен
WAIT(1)
$hwnd1 = wndfind("fonts.txt - Блокнот") //  привязка
WAITMS(50)
HSET($hwnd1,1)
WAITMS(50)
WNDBUMP(wndfind($hwnd1)) // поверх всех окон (передний план)
WAITMS(50)
LCLICK(360,140)
WAITMS(50)
HSET(0,0)
// тут ряд манипуляций в файле
HSET($hwnd1,1)
WAITMS(50)
SENDMESSAGE($hwnd1,0x0010,0,0) // закрываю
WAIT(1)
$hwnd2 = wndfind("Блокнот") // окно Вы уверенны? сохранить, да?
HSET($hwnd2,1)
LCLICK(206,123)

HALT


И еще вопрос открыт:
Quote
Есть поля для заполнения данными, данные неизменны. Можно ли в скрипт прописать их как
Code: (clickermann) [Select]
ВСТАВИТЬ("мопед123")Начинаю соображать, что вроде только как через присвоение значения переменной это делается, верно?

Как переименовать txt файл внутри кликермана, раз инсерт и сейв есть, ренейм тоже возможно есть?
« Last Edit: May 05, 2017, 04:07:53 PM by Loginow »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #20 on: May 05, 2017, 05:42:39 PM »
Code: (clickermann) [Select]
WNDBUMP(wndfind($hwnd1)) // поверх всех окон (передний план)в функции надо указывать HWND а не wndfind
Правильно
Code: (clickermann) [Select]
WNDBUMP($hwnd1) // поверх всех окон (передний план)
Чтобы закрыть блокнот нужно нажать Alt+F4 после чего выскочит запрос на сохранение. "Да" уже выделено, нужно лишь нажать Enter.
Code: (clickermann) [Select]
EXECUTE("1.txt")      // опен
WAIT(1)
$hwnd1 = wndfind("fonts.txt - Блокнот") //  привязка
WAITMS(50)
WNDBUMP($hwnd1) // поверх всех окон (передний план)
WAITMS(50)
HSET($hwnd1,1)
WAITMS(50)
LCLICK(360,140)
WAITMS(50)
HSET(0,0)
// тут ряд манипуляций в файле

WNDBUMP($hwnd1) // поверх всех окон (передний план)
WAITMS(50)
KEYDOWN (#ALT)
WAITMS (50)
KEYPRESS(#F4)
KEYUP (#ALT)
WAITMS(500)
KEYPRESS(#ENTER)

HALT
 

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #21 on: May 05, 2017, 05:52:50 PM »
На счет вставить, используй подпрограммы для вызова повторяющегося кода, в вызове можно передавать параметры, строки или числа.
Code: (clickermann) [Select]
SUB(ВСТАВИТЬ, $name1, $name2) // подпрограмма с параметрами
   // тело выполняется только после вызова
   LCLICK(10,10) // клик по полю ввода
   WAITMS(50)
   TOCLIP($name1) // текст в буфер
   WAITMS(50)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
   KEYPRESS(#TAB) // переходим в следующее поле
   WAITMS (50)
   TOCLIP($name2) // текст в буфер
   WAITMS(50)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
END_SUB

ВСТАВИТЬ("мопед 123","велосипед 456") // вызов подпрограммы (обязательно ниже подпрограммы)
ВСТАВИТЬ("самокат 123","мотоцикл 456")

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #22 on: May 05, 2017, 07:41:19 PM »
Спасибо, суб+++.

По поводу ALT+F4 - я скопировал ваш скрипт, но ничего не происходит. Скопировал в точности.
КМАН зависает на открытие второго окна.
Винда 7. В чем может быть проблема?
« Last Edit: May 05, 2017, 07:44:37 PM by Loginow »

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #23 on: May 05, 2017, 10:04:57 PM »
Спасибо, суб+++.

По поводу ALT+F4 - я скопировал ваш скрипт, но ничего не происходит. Скопировал в точности.
КМАН зависает на открытие второго окна.
Винда 7. В чем может быть проблема?
Вы же не японец, чтоб в точности копировать. Вставте в скрипт то название окна открытого блокнота, что отображается в вашей системе. Можете его уточнить в менеджере окон встроенном в рабочее окно Clickermann. Так же вероятная причина, то что задержки EXECUTE("1.txt")      // опен
WAIT(1)
не всегда достаточно для открытия окна.

ахах, kiril и снова я с вами частично согласен. Не японец)
Предпологалось копирование конкретных частей. Название окна скопировал из Манагера Окон(К-МАН).
Тоже думал на счет WAIT(1). Сменил на (5). Результат не изменился. Выход из ситуации нашел только экстренный.
Понимаю что он не верный, и смириться просто тоже не могу.

Vint, Разобрал ситуация по тире/дефису. Так как я скопировал его из Манагера(К-МАН), у меня почему-то именно длинный. Может у меня просто windows малость "паленый"?


Code: (clickermann) [Select]
EXECUTE("fonts.txt") // Открываю файл
WAIT(5)
$hwnd2 = wndfind("fonts.txt — Блокнот") // HWND окна
WAITMS(50)
WNDBUMP($hwnd2) // передний план
WAITMS(50)
HSET($hwnd2,1) // привязка
WAITMS(50)
LCLICK(360,140)
WAITMS(50)
HSET(0,0)     // отвязка


KEYDOWN(#WIN) // разворот на весь экран
WAITMS(50)
KEYPRESS(#UP)
WAITMS(50)
KEYUP(#WIN)
WAITMS(50)
KEYDOWN(#CTRL)  // выделяю
WAITMS(50)
KEYPRESS(#A)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(50)

KEYDOWN(#CTRL)  // вставка
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(50)

WAITMS(50)
LCLICK(22,30)
WAITMS(50)
LCLICK(70,101)
WAITMS(50)
HSET($hwnd2,1)
WAITMS(50)
SENDMESSAGE($hwnd2,0x0010,0,0)
HSET(0,0)
« Last Edit: May 05, 2017, 10:06:54 PM by Loginow »

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #24 on: May 06, 2017, 02:55:54 PM »
Доброго времени)
Спасибо всем что поддерживаете. Вижу финишную прямую. Подскажите:

Можно ли через K-MAN переименовать файл, который находится в папке со скриптом, не открывая его при этом и как?
Очень важно для меня.
Как правильно переходить к сабу в таком случае? В чем ошибка? ( без саба скрипт ворк)

Code: (clickermann) [Select]
$hwnd1 = wndfind("CD")
WAIT(1)
   
    SUB(1)
HSET($hwnd1,1)
WAITMS(50)
LCLICK(692,106)  // BW
WAITMS(50)
HSET(0,0)
KEYDOWN(#CTRL)
 WAITMS(50)
   KEYPRESS(#A)
   KEYUP(#CTRL)
   WAITMS(50)
   TOCLIP("SCU(1-10/price)")
WAITMS(50)
   KEYDOWN (#CTRL)
   WAITMS(50)
   KEYDOWN(#V)
   WAITMS(50)
   KEYUP(#V)
   KEYUP(#CTRL)
   HSET($hwnd1,1)
  LCLICK(524,461) // NW
WAITMS(50)
HSET(0,0)
END_SUB

WNDBUMP($hwnd1)
WAIT(1)

GOSUB(1)
        WAIT(1)
HALT

Как вы решаете задачу по работе с файлами и папками в других локациях? (удаление, редактировани и т.п.)
total com?
« Last Edit: May 06, 2017, 04:33:51 PM by Loginow »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #25 on: May 06, 2017, 05:22:36 PM »
Можно ли через K-MAN переименовать файл, который находится в папке со скриптом, не открывая его при этом и как?
Очень важно для меня.
Как правильно переходить к сабу в таком случае? В чем ошибка? ( без саба скрипт ворк)

Code: (clickermann) [Select]
$hwnd1 = wndfind("CD")
WAIT(1)
   
    SUB(1)
HSET($hwnd1,1)
WAITMS(50)
LCLICK(692,106)  // BW
WAITMS(50)
HSET(0,0)
KEYDOWN(#CTRL)
 WAITMS(50)
   KEYPRESS(#A)
   KEYUP(#CTRL)
   WAITMS(50)
   TOCLIP("SCU(1-10/price)")
WAITMS(50)
   KEYDOWN (#CTRL)
   WAITMS(50)
   KEYDOWN(#V)
   WAITMS(50)
   KEYUP(#V)
   KEYUP(#CTRL)
   HSET($hwnd1,1)
  LCLICK(524,461) // NW
WAITMS(50)
HSET(0,0)
END_SUB

WNDBUMP($hwnd1)
WAIT(1)

GOSUB(1)
        WAIT(1)
HALT

Как вы решаете задачу по работе с файлами и папками в других локациях? (удаление, редактировани и т.п.)
total com?
Всё что нужно сделать с файлами можно через cmd он же bat. Часто можно сразу вызвать cmd с параметрами не создавая файлов.

SUB... у нас на дворе 2017 год, команды GOSUB уже нет несколько лет. Или ты пользуешься настолько старой версией или мы здесь зря всё пишем так как ты справку не открывал.

И имя не нужно задавать числами. Имя должно, минимум, начинаться с буквы.
« Last Edit: May 06, 2017, 05:26:11 PM by Vint »


Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #26 on: May 06, 2017, 06:06:57 PM »
Под всем согласен, справка помогла,  я уже решил этот вопрос.
« Last Edit: May 06, 2017, 06:10:31 PM by Loginow »

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #27 on: May 07, 2017, 07:25:43 PM »
А на ожидание окна есть скрипт??

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #28 on: May 09, 2017, 05:03:43 PM »
Цикл
Code: (clickermann) [Select]
WHILE(wndfind(ляляля) = 0)
    WAITMS(50)
END_CYC


Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Товарищи - суть в том... (срочное)
« Reply #29 on: May 10, 2017, 08:12:28 PM »
Сегодня опробую. Спасибо.