Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Валера Л

Pages: [1]
1
На счет кодировки, нужно в реестре поправить значения

Нужно приравнять кодировки 1250 и 1252 к 1251
Code: [Select]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"

И перезагрузить комп.



Кодировки приравнял, комп перезагрузил.
Все осталось без изменений.
По-прежнему рисует вопросики.


Все! Нашел причину.

2
вот тебе еще вариант, взял отсюда http://crapware.aidf.org/forum/index.php?topic=2336.msg14743#msg14743 , на представленных тобой двух картинках работает отлично.
код немного подредактировал, вынес переменные уровня цветокоррекции и цвета цифр.
Code: (clickermann) [Select]
#name "ReCapcha"

SUB(pos_size)
   UNDEFINE($num_line_start)
   UNDEFINE($num_line_end)
   UNDEFINE($num_real)
   UNDEFINE($num_y1)
   UNDEFINE($num_y2)
   
   GETSCREEN($x1_fr,$y1_fr,$x2_fr,$y2_fr)
   COLORMODE($clmod,$x1_fr,$y1_fr,$x2_fr,$y2_fr)
   
   
   scanpxl($cap_arr,$x1_fr,$y1_fr,$x2_fr,$y2_fr, $num_color)
   IF(ARRSIZE ($cap_arr) = 0)
      print("капчи в этом поле нету")
      halt
   END_IF
   $y1_cap=$cap_arr[1]
   $y2_cap=ARRPOP($cap_arr)
   
   
   FOR($x=$x1_fr,$x<$x2_fr)
      FOR($y=$y1_cap,$y<$y2_cap+1)
         
         IF(pxl($x,$y) = $num_color)
            $x1_cap= $x

            $y=$y2_cap+1
            $x=$x2_fr
         END_IF
      END_CYC
   END_CYC
   
   FOR($x=$x2_fr,$x>$x1_fr,-1)
      FOR($y=$y1_cap,$y<$y2_cap+1)
         IF(pxl($x,$y) = $num_color)
            $x2_cap= $x
            $y=$y2_cap+1
            $x=$x1_fr
         END_IF
      END_CYC
   END_CYC
   
   //print($x1_cap," ",$y1_cap," ",$x2_cap," ",$y2_cap)
   //=======================================
   
   ARRPUSH ($num_line_start, $x1_cap)
   FOR($x=$x1_cap,$x<$x2_cap)
      FOR($y=$y1_cap,$y<$y2_cap+1)
         IF(pxl($x,$y)  = $num_color)
            IF((pxl($x+1,$y)  = $num_color)|(pxl($x+1,$y-1) =$num_color)|(pxl($x+1,$y+1) = $num_color))
               $y=999999
            END_IF
         END_IF
         
      END_CYC
      IF($y=$y2_cap+1)
         ARRPUSH ($num_line_end, $x)
         FOR($x_check=$x+1,$x_check<$x2_cap)
            FOR($y_check=$y1_cap,$y_check<$y2_cap+1)
               IF(pxl($x_check,$y_check)  = $num_color)
                  $x= $x_check
                  ARRPUSH ($num_line_start, $x)
                  $y_check=$y2_cap+1
                  $x_check=$x2_cap
               END_IF
            END_CYC
         END_CYC
      END_IF
   END_CYC
   ARRPUSH ($num_line_end, $x2_cap)
   
   //===================================
   
   FOR($num=0,$num<arrsize($num_line_start))
      FOR($y=$y1_cap,$y<$y2_cap)
         FOR($x=$num_line_start[$num],$x<$num_line_end[$num]+1)
            IF(pxl($x,$y)  = $num_color)
               ARRPUSH($num_y1,$y)
               $y=99999
               $x=$num_line_end[$num]+1
            END_IF
         END_CYC
      END_CYC
   END_CYC
   
   FOR($num=0,$num<arrsize($num_line_start))
      FOR($y=int($y2_cap),$y>$y1_cap,-1)
         FOR($x=$num_line_start[$num],$x<$num_line_end[$num]+1)
            IF(pxl($x,$y)  = $num_color)
               ARRPUSH($num_y2,$y)
               $y=$y1_cap
               $x=$num_line_end[$num]+1
            END_IF
         END_CYC
      END_CYC
   END_CYC
   print("=====================")
   print("найдено цифр в поле - ",arrsize($num_line_start))
   
   
   //   FOR($a=0,$a<arrsize($num_line_start))
   //      print($num_line_start[$a],",",$num_y1[$a],",",$num_line_end[$a],",",$num_y2[$a])
   //   END_CYC
END_SUB

//=============================================
SUB(side)
   FOR($num=0,$num<arrsize($num_line_start))
      $step =($num_y2[$num]-$num_y1[$num])/4
     
      FOR($a=0,$a<4)
         IF_PIXEL_IN($num_line_start[$num],$num_y1[$num]+ROUND(($step*$a),0),$num_line_end[$num],$num_y1[$num]+ROUND(($step*$a),0),$num_color)
            $x=$_return1
         END_IF
         
         IF_PIXEL_IN($num_line_start[$num],$num_y1[$num]+ROUND(($step*($a+1)),0),$num_line_end[$num],$num_y1[$num]+ROUND(($step*($a+1)),0),$num_color)
            IF($x-$_return1=0)
               ARRPUSH ($side, 0)
            else
               IF(($num_line_end[$num]-$num_line_start[$num])/($x-$_return1)>2)
                  ARRPUSH ($side, -1)
               else
                  IF(($num_line_end[$num]-$num_line_start[$num])/($x-$_return1)>0)
                     ARRPUSH ($side, -2)
                  END_IF
               END_IF
               IF(($num_line_end[$num]-$num_line_start[$num])/($x-$_return1)<-2)
                  ARRPUSH ($side, 1)
               else
                  IF(($num_line_end[$num]-$num_line_start[$num])/($x-$_return1)<0)
                     ARRPUSH ($side, 2)
                  END_IF
               END_IF
            END_IF
         else
            ARRPUSH ($side, 0)
         END_IF
         
         FOR($e=$num_line_end[$num],$e>$num_line_start[$num],-1)
            IF(pxl($e,$num_y1[$num]+ROUND(($step*$a),0)) = $num_color)
               $x=$e
               $e=$num_line_start[$num]
            END_IF
         END_CYC
         FOR($e=$num_line_end[$num],$e>$num_line_start[$num],-1)
            IF(pxl($e,$num_y1[$num]+ROUND(($step*($a+1)),0)) = $num_color)
               $xs=$e
               $e=$num_line_start[$num]
            END_IF
         END_CYC
         
         IF($x-$xs=0)
            ARRPUSH ($side, 0)
         else
            IF(($num_line_end[$num]-$num_line_start[$num])/($x-$xs)>2)
               ARRPUSH ($side, -1)
            else
               IF(($num_line_end[$num]-$num_line_start[$num])/($x-$xs)>0)
                  ARRPUSH ($side, -2)
               END_IF
            END_IF
            IF(($num_line_end[$num]-$num_line_start[$num])/($x-$xs)<-2)
               ARRPUSH ($side, 1)
            else
               IF(($num_line_end[$num]-$num_line_start[$num])/($x-$xs)<0)
                  ARRPUSH ($side, 2)
               END_IF
            END_IF
         END_IF
         
      END_CYC
     
      print("-------------")
     
      $side_str = $side[0]
      FOR($b=1,$b<arrsize($side))
         $side_str = STRCONCAT ($side_str,":",$side[$b])
      END_CYC
      //  print($side_str)
     
      FOR($c=0,$c<10)
         
         FOR($n=1,$n<TFCOUNT(STRCONCAT("num_",$c))+1)
            STRSEPARATE (TFREAD (STRCONCAT("num_",$c),$n), ":", $temp_arr)
           
            FOR($i=0,$i<8)
               IF(int($temp_arr[$i]) ! int($side[$i]))
                  $i=999
               END_IF
            END_CYC
            IF($i < 999)
               print("цифра ", $num+1," это ",$c)
               ARRPUSH ($num_fin,$c)
               ARRPUSH ($cap_all_arr,$c)
               $n=TFCOUNT(STRCONCAT("num_",$c))+1
               $c=10
            END_IF
            UNDEFINE($temp_arr)
         END_CYC
      END_CYC
     
      IF(arrsize($num_fin)<1)
         print("цифра ",$num+1," не распознана")
         $n_file = INPUTBOX(STRCONCAT("введи цифру которая в капче под номером ",$num+1), 0, 120)
         IF($n_file = "")
            halt
         END_IF
         ARRPUSH ($cap_all_arr,$n_file)
         TFWRITE (STRCONCAT("num_",$n_file), $side_str)
      END_IF
     
      UNDEFINE($side)
      UNDEFINE($num_fin)
   END_CYC
   
   $cap_all_str = $cap_all_arr[0]
   FOR($a=1,$a<arrsize($cap_all_arr))
      $cap_all_str = STRCONCAT ($cap_all_str,$cap_all_arr[$a])
   END_CYC
   print("-------------")
   print($cap_all_str)
   print(" ")
   
END_SUB
//=============================================
//=============================================
//=============================================
$clmod = 7  //уровень коррекции цвета
$num_color = 8388607     //цвет цифр при указанном выше уровне цветокоррекции.


$x1_fr=325     // координаты поля с капчей (целиком, то что белое)
$y1_fr=395
$x2_fr=369
$y2_fr=419


pos_size()      // определение границ цифр в капче

side()     //распознаватель

//в этоге мы имеем массив с цифрами  $cap_all_arr
//и строку  $cap_all_str


halt

обучение не сложное. всегото нужно прописать координаты твоей картинки с числом, без знака "%". точку данный код определит как цифру, это не проблема. обучаеш точку под цифру 1 например (я так и сделал)
первая твоя картинка к примеру будет выглядеть так
Code: [Select]
17:34:31 найдено цифр в поле - 4
17:34:31 -------------
17:34:31 цифра 1 это 6
17:34:31 -------------
17:34:31 цифра 2 это 1
17:34:31 -------------
17:34:31 цифра 3 это 1
17:34:31 -------------
17:34:31 цифра 4 это 5
17:34:31 -------------
17:34:31 6115
дальше уже понятно что предпоследняя цифра "1" это точка, с помощью функций работы со строками заменишь уже сам. или если тебе не важно что после точки, то пропишешь границы твоего числа до точки, 2 знака.


если же тебе это всеравно покажется сложным, предоставь на форуме картинки всех цифр, можно в разнобой, я обучу и дам тебе нужные файлы.

Спасибо!
Наконец-то у меня выходные.
Пытаюсь разобраться.
Что-то мой W10 не распознает язык
Пишет вот такое:

 =====================
11:24:18 ??????? ???? ? ???? - 1
11:24:18 -------------
11:26:56 =====================
11:26:56 ??????? ???? ? ???? - 1
11:26:56 -------------
11:27:07 ????? 1 ?? ??????????
11:27:15 -------------
11:27:15 0
11:27:15 
11:27:42 =====================
11:27:42 ??????? ???? ? ???? - 1
11:27:42 -------------
11:28:04 =====================
11:28:04 ??????? ???? ? ???? - 1
11:28:05 -------------
11:38:58 =====================
11:38:58 ??????? ???? ? ???? - 1
11:38:58 -------------
11:41:03 =====================
11:41:03 ??????? ???? ? ???? - 1
11:41:03 -------------
11:41:10 ????? 1 ??? 0
11:41:10 -------------
11:41:10 0
11:41:10 
11:41:12 =====================
11:41:12 ??????? ???? ? ???? - 1
11:41:12 -------------
11:42:55 ????? ? ???? ???? ????
11:45:12 =====================
11:45:12 ??????? ???? ? ???? - 1
11:45:12 -------------
11:46:03 =====================
11:46:03 ??????? ???? ? ???? - 1
11:46:03 -------------

3
Всем привет.
"Разделка","вырезка", "нарезка вырезки". Решил я обойти эту "кулинарную" тему.
Сделаю шаблоны своими руками,в редакторе.
К примеру в "паинте".
В связи с чем пытаюсь научить скрипт обращаться в файл, в котором хранятся шаблоны, и определять нужную комбинацию.

Надеюсь на помощь крутых Кликермэнов
Может кто поможет?

Пример шаблона:





4
что подразумевается под термином нарезка?

Я подразумеваю вот это:

 "....а образцы цифр ловят в скрины с мониторов и вырезают в паинте до нужного размера, как сало на ломтики. ;D"

пыс. Что то мне перестали приходить уведомления, с форы.
         В связи с чем не могу своевременно реагировать на ответы

5
поправочка, лишние скобки в условии.
Code: (clickermann) [Select]
LCLICK(792,737)  // 7959563
WAITMS(20)
LCLICK(791,610)  // 255
WAITMS(800)

GETSCREEN // снимок экрана в буфер кликера для последующего анализа
IF(PXL(343,302) = 3748071) // координата и цвет красного
   LCLICK(724,320)  // 15623680
   WAITMS(500)
END_IF

IF(PXL(168,122) = 52224) // координата и цвет зеленого
   LCLICK(891,140)  // 15623680
   WAITMS(500)
END_IF


Спасибо, исправлю.
А как на счет интеграции кода нарезки, в код скрипта?
Как его, правильно, интегрировать?

6
end - такой команды в кликере нет, нечего писать всякий мусор.
COLORG(52224) - эта функция извлекает зеленый канал из цвета в десятеричном формате. Тебе такое не нужно.
WAIT(0,05) - здесь ошибка в запятой, нужно писать точку. Или просто WAITMS(50)

В данном случаи используется комбинированное условие из двух функций проверки цвета по координате. Укажи правильно координату рамки и цвета.
Code: (clickermann) [Select]
LCLICK(794,732)
WAITMS(200)
LCLICK(778,610)  // 4375039
WAITMS(200)
LCLICK(719,287)  // 196821
WAITMS(600)

GETSCREEN // снимок экрана в буфер кликера для последующего анализа
IF((PXL(100,100) = 255)|(PXL(100,100) = 52224)) // координата и цвет зеленого и красного
   LCLICK(889,105)
   WAITMS(500)
END_IF


Вот, спасибо!!!!!
Все работает.
Правда я сделал некоторые изменения.
Почему?
Потому что, всплывающие окна находятся на разных уровнях.
Получилось вот так:
LCLICK(792,737)  // 7959563
WAITMS(20)
LCLICK(791,610)  // 255
WAITMS(800)

 
GETSCREEN // снимок экрана в буфер кликера для последующего анализа
IF((PXL(343,302) = 3748071) // координата и цвет красного
   LCLICK(724,320)  // 15623680
   WAITMS(500) 
END_IF

IF(PXL(168,122) = 52224)) // координата и цвет зеленого
    LCLICK(891,140)  // 15623680
    WAITMS(500)
END_IF

У меня еще есть вопрос: " Как код нарезки интегрировать в код скрипта?"
Тоже надо начинать с "IF"?

7
Господа, кликерманы!
Помогите, мне, правильно написать команды.
С горем-пополам составил скрипт. Но он работает не так как-бы хотелось-бы:

LCLICK(794,732)
WAITMS(200)
LCLICK(778,610)  // 4375039
WAITMS(200)
LCLICK(719,287)  // 196821
end

COLORG(52224)
LCLICK(889,105)
WAIT(0,05)
end   

Объясню, какую цель я преследую:
Первые, две, команды работают по координатам.
После того как они сработают, всплывает окно, либо в красном контуре, либо в зеленом.
Вот их,я бы хотел, что-бы скрипт распознавал по цветам и закрывал.
Я пытался изобразить, но получилась чихня.
Курсор прыгает по всем координатам.
Я так понимаю надо прописывать условия, а как?
Спасибо.


8
Не! Не шучу!
Я кроме русского,белорусского и церковно-славянского, других языков не знаю.
Я так понимаю ф5-это " TFWRITE($cmd, "chcp 1251>nul") "
[/quote]
KEYPRESS(#F5)
[/quote]

Запускал скрипт. Как-то странно он работает.
Записывает одни 1, а при следующем запуске, пишет одни 6.

9
mы шуmuшь?  уберu ф5, u все будеm  нормально! нашел же проблему..
 я показал как можно нарезаmь бысmро u не вручную, дальше дело за малым  собраmь все в одно чuсло

Не! Не шучу!
Я кроме русского,белорусского и церковно-славянского, других языков не знаю.
Я так понимаю ф5-это " TFWRITE($cmd, "chcp 1251>nul") "

10
я пuсал скрuпm нарезкu) mам задаешь гранuцы, u обучаешь его, он авmомаmом запucываеm.
http://crapware.aidf.org/forum/index.php?topic=2434.msg15265#msg15265

Скрипт, возможно, хороший.
Но он не подходит для моих целей.
Так как постоянно перезапускает браузер, а мне нужна статическая страница.
Но,прозапас, запомню, а вдруг пригодится.



11
Наконец-то появилось время пообщаться с кликерманами.
Спасибо всем за ответ и советы.

12
поросят ловят в хлеву, волков в лесу, а образцы цифр ловят в скрины с мониторов и вырезают в паинте до нужного размера, как сало на ломтики. ;D
Code: (clickermann) [Select]
#name "Скрин экрана"
GETSCREEN
screenshot("цифры на разделку_")
HINTPOPUP("цифру...", "я поймал")
BEEP(800,200)
HALT


О! Сало на ломтики резать, я умею.
А цифры.....
Ну, ладно.
Утро вечера, нет ночи, мудренее.
Спасибо за участие и советы.
А сделать скрин в нужном формате поможет этот простой скрипт! 8)

13
а какой в этом смысл, ну распознает кликер цифру и остановится? Собирай образцы цифр и вставляй их в имеющийся на форуме скрипт распознавания чисел. уже научили распознавать и давно, заодно и поиск по форуму освоишь.

Согласен! Из той инфы, которую я предоставил, смысла не видно.
Смысл в том, что мне надо найти комбинацию цифр, с высоким процентом, которую надо сохранить.
Конечно, идеальный, был бы вариант, для меня, это автоматическое сохранение результатов в какую нибудь папку.
Но так как,я, в программировании  ........
То, для начала, я решил, обойтись функцией "Halt' и ручным сохранением результатов.
Интересно,мне, знать: где собирать образцы цифр?

14
Привет всем!
Помогите чайнику, научить кликера,распознавать цифры,в установленном диапазоне, внутри рамки.
А после совпадения, должен сработать Хальт. 


Pages: [1]