Автор Тема: Потоки  (Прочитано 48554 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Hito

  • Оплот сообщества
  • ****
  • Сообщений: 489
    • Просмотр профиля
Re: Потоки
« Ответ #15 : Ноябрь 16, 2014, 02:18:31 pm »
Доброго времени. Что-то не работает поток в моем случае, я открываю 1 окно (делаю на передний план) - копирую из него текст, затем открываю 2 окно и вставляю текст туда. Но как только в поток эти действия включаю - перестает работать:

#name "test_3"
WNDBUMP(65994)

WAIT(1)

DBLCLICK(462,425)

WAIT(1)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)

WAIT(1)

WNDBUMP(197118)

WAIT(1)

WAITMS(300)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
waitms(200)

KEYPRESS(#ENTER)

HALT

А я че-то и не вижу у тебя тут созданного потока...
Я не ду... Потому и не бу...

Hito

  • Оплот сообщества
  • ****
  • Сообщений: 489
    • Просмотр профиля
Re: Потоки
« Ответ #16 : Ноябрь 16, 2014, 02:51:32 pm »
Вот твой скрипт с потоком:

Код: Clickermann
  1. THREAD(name)  // Начало потока
  2.  
  3.   WNDBUMP(65994)
  4.  
  5.   WAIT(1)
  6.  
  7.   DBLCLICK(462,425)
  8.  
  9.   WAIT(1)
  10.   KEYDOWN (#CTRL)
  11.   WAITMS (50)
  12.   KEYDOWN (#C)
  13.   WAITMS (50)
  14.   KEYUP (#C)
  15.   KEYUP (#CTRL)
  16.  
  17.   WAIT(1)
  18.  
  19.   WNDBUMP(197118)
  20.  
  21.   WAIT(1)
  22.  
  23.   WAITMS(300)
  24.   KEYDOWN (#CTRL)
  25.   WAITMS (50)
  26.   KEYDOWN (#V)
  27.   WAITMS (50)
  28.   KEYUP (#V)
  29.   KEYUP (#CTRL)
  30.   waitms(200)
  31.  
  32.   KEYPRESS(#ENTER)
  33.  
  34.   HALT
  35.  
  36. END_THREAD  // Конец потока
  37.  
  38. BEEP(800,200)  // Команда работает параллельно с потоком
  39. WAIT(1)
Я не ду... Потому и не бу...

Alex59

  • Зашел в гости
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Потоки
« Ответ #17 : Ноябрь 16, 2014, 03:47:20 pm »
Спасибо, этот теперь работает. Но только если делать окно активным, а если вместо WNDBUMP поставить HSET - то снова не работает. Мне из 2х и более окон одновременно нужно скопировать информацию в 1 окно.

Hito

  • Оплот сообщества
  • ****
  • Сообщений: 489
    • Просмотр профиля
Re: Потоки
« Ответ #18 : Ноябрь 16, 2014, 03:52:07 pm »
Спасибо, этот теперь работает. Но только если делать окно активным, а если вместо WNDBUMP поставить HSET - то снова не работает. Мне из 2х и более окон одновременно нужно скопировать информацию в 1 окно.

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

Alex59

  • Зашел в гости
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Потоки
« Ответ #19 : Ноябрь 16, 2014, 03:58:13 pm »
Ааа.. теперь понял:) Да, я хотел в 1 потоке к разным окнам привязать:) делал HSET(номер,1) потом HSET(номер,0) и также следующее окно ;D

Hito

  • Оплот сообщества
  • ****
  • Сообщений: 489
    • Просмотр профиля
Re: Потоки
« Ответ #20 : Ноябрь 16, 2014, 04:00:59 pm »
Ааа.. теперь понял:) Да, я хотел в 1 потоке к разным окнам привязать:) делал HSET(номер,1) потом HSET(номер,0) и также следующее окно ;D

Ну, если привязка и отвязка будет последовательной (то есть - сначала привязался кликер к одному окну, потом к другому и так далее), то это возможно. Но привязываясь к окну "2", кликер отвяжется от окна "1".
Я не ду... Потому и не бу...

Alex59

  • Зашел в гости
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Потоки
« Ответ #21 : Ноябрь 16, 2014, 04:24:18 pm »
Тут цифры окон только поменял (перезапустил браузер и блокнот) но алгоритм тот-же, Ctrl+C и Ctrl+V не срабатывают:
THREAD(name)
   //WNDBUMP(197198)
   HSET(197198,1)   
 
   WAIT(1)
 
   DBLCLICK(526,704)
   
   WAIT(1)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#C)
   WAITMS (50)
   KEYUP (#C)
   KEYUP (#CTRL)
   
   HSET(197198,0)
 
   WAIT(1)

   //WNDBUMP(328256)
   HSET(328256,1)
 
   WAIT(1)
 
   WAITMS(300)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   waitms(200)
 
   KEYPRESS(#ENTER)
   
   HSET(328256,0)
 
   HALT
 
END_THREAD  //
 
BEEP(800,200)  //
WAIT(1)

Hito

  • Оплот сообщества
  • ****
  • Сообщений: 489
    • Просмотр профиля
Re: Потоки
« Ответ #22 : Ноябрь 16, 2014, 04:37:21 pm »
Ты на ноуте, или на компе макрос запускаешь?
Я не ду... Потому и не бу...

Alex59

  • Зашел в гости
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Потоки
« Ответ #23 : Ноябрь 16, 2014, 04:41:23 pm »
на ноуте, поставил win 10 тестовую, и на ноуте есть еще vmware win XP пробую и там и там

Hito

  • Оплот сообщества
  • ****
  • Сообщений: 489
    • Просмотр профиля
Re: Потоки
« Ответ #24 : Ноябрь 16, 2014, 04:51:11 pm »
На - пробуй:

Код: Clickermann
  1. #ps2_keyboard
  2. #ps2_mouse
  3. THREAD(name)
  4.   //WNDBUMP(197198)
  5.   HSET(197198,1)
  6.  
  7.   WAIT(1)
  8.  
  9.   DBLCLICK(526,704)
  10.  
  11.   WAIT(1)
  12.   KEYDOWN (#CTRL)
  13.   WAITMS (100)
  14.   KEYPRESS(#C)
  15.   WAITMS (50)
  16.   KEYUP (#CTRL)
  17.  
  18.   HSET(197198,0)  // Этот параметр не обязателен. При выполнении команды из 23-ей строки, кликер автоматом отвяжется от окна "197198" и привяжется к "328256".
  19.  
  20.   WAIT(1)
  21.  
  22.   //WNDBUMP(328256)
  23.   HSET(328256,1)
  24.  
  25.   WAIT(1)
  26.  
  27.   WAITMS(300)
  28.   KEYDOWN (#CTRL)
  29.   WAITMS (100)
  30.   KEYPRESS(#V)
  31.   WAITMS (50)
  32.   KEYUP (#CTRL)
  33.   waitms(200)
  34.  
  35.   KEYPRESS(#ENTER)
  36.  
  37.   HSET(328256,0)
  38.  
  39.   HALT
  40.  
  41. END_THREAD  //
  42.  
  43. BEEP(800,200)  // Тут никаких HSET, так как у тебя работают последовательные привязки в потоке.
  44. WAIT(1)
« Последнее редактирование: Ноябрь 16, 2014, 05:24:58 pm от Hito »
Я не ду... Потому и не бу...

Alex59

  • Зашел в гости
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Потоки
« Ответ #25 : Ноябрь 16, 2014, 06:58:59 pm »
Спасибо большое за оперативную помощь! Но увы, этот вариант тоже не работает. Завтра на работе буду кумекать что к чему :o

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3046
  • Лечу куда хочу. cman 4.11.003, xp32
    • Просмотр профиля
Re: Потоки
« Ответ #26 : Ноябрь 16, 2014, 08:54:13 pm »
Да что же блин такое...
   KEYDOWN ()
   KEYUP ()
Не работают в режиме привязки, 100500 раз упоминалось, в половине тем на форуме и каждые 20 постов в группе.


Hito

  • Оплот сообщества
  • ****
  • Сообщений: 489
    • Просмотр профиля
Re: Потоки
« Ответ #27 : Ноябрь 16, 2014, 08:57:08 pm »
Да что же блин такое...
   KEYDOWN ()
   KEYUP ()
Не работают в режиме привязки, 100500 раз упоминалось, в половине тем на форуме и каждые 20 постов в группе.

Через раз... У меня бывало, что и работало... Потому и предложил попробовать режиме PS/2
Я не ду... Потому и не бу...

i0

  • Оплот сообщества
  • ****
  • Сообщений: 328
  • cman 4.11.003, ie, opera-presto, win7 x86, x64
    • Просмотр профиля
Re: Потоки
« Ответ #28 : Ноябрь 20, 2014, 01:27:21 am »
Потоки могут невозбранно контролировать друг друга
Цитата: Clickermann Help
SetThread (thread_name, state) - меняет состояние дочернего потока

так всё таки только дочернего или любого?

Hito

  • Оплот сообщества
  • ****
  • Сообщений: 489
    • Просмотр профиля
Re: Потоки
« Ответ #29 : Ноябрь 20, 2014, 12:34:37 pm »
Потоки могут невозбранно контролировать друг друга
Цитата: Clickermann Help
SetThread (thread_name, state) - меняет состояние дочернего потока

так всё таки только дочернего или любого?

На сколько я понял, из дочернего потока не проконтролишь, такой командой, дочерний поток. Только из основного дочерний. Или я ошибаюсь?
Я не ду... Потому и не бу...