Author Topic: Keystring RU & ENG  (Read 3913 times)

0 Members and 1 Guest are viewing this topic.

mintol

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Keystring RU & ENG
« on: January 31, 2017, 01:13:13 PM »
Как написать в строке, чтобы отображались сразу русский и английский при выводе?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Keystring RU & ENG
« Reply #1 on: January 31, 2017, 01:27:44 PM »
Как написать в строке, чтобы отображались сразу русский и английский при выводе?

В обычном режиме никак. В оконном режиме текст передается окну как есть, и поэтому могут быть напечатаны любые символы.
Как альтернатива можно воспользоваться буфером обмена.
Code: (clickermann) [Select]
TOCLIP("Stroca Строка")
WAITMS(50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)

mintol

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Keystring RU & ENG
« Reply #2 on: January 31, 2017, 01:32:23 PM »
а буфер может быть только единичным или можно несколько?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Keystring RU & ENG
« Reply #3 on: January 31, 2017, 01:45:17 PM »
В обычном режиме никак.

В обычном режиме можно скриптом
Code: (clickermann) [Select]
#name "Полиглот"

LOGCLEAR
LCLICK(390,255)  // это для активации окна
WAITMS(500)


$text = "Как написать в строке, чтобы отображались сразу русский и English при выводе"

$hwnd1 = wndfind("Clickermann -")  // получаем HWND окна кликера
$hwnd2 = wndfind("Notepad++")    // получаем HWND окна куда пишем

$len = STRLEN($text) + 1
FOR($i=1, $i < $len)
    $s = STRCUT($text, $i, 1)
    IF(STRLEN(STRFILTER(STRCONCAT("_",$s),"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789-+*/ .,:;?№",0)) > 1)
        SETKBLAYOUT($hwnd1, 1049) // устанавливаем русскую раскладку
        SETKBLAYOUT($hwnd2, 1049)
        KEYSTRING($s, 10)
    ELSE
        SETKBLAYOUT($hwnd1, 1033) // устанавливаем английскую раскладку
        SETKBLAYOUT($hwnd2, 1033)
        KEYSTRING($s, 10)
    END_IF
END_CYC

HALT


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Keystring RU & ENG
« Reply #4 on: January 31, 2017, 02:26:17 PM »
Просто обычно проще воспользоваться буфером чем ваять вот такого монстра ;)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Keystring RU & ENG
« Reply #5 on: January 31, 2017, 02:27:02 PM »
а буфер может быть только единичным или можно несколько?

Буфер обмена в системе 1. Зачем тебе несколько?

mintol

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Keystring RU & ENG
« Reply #6 on: January 31, 2017, 03:26:51 PM »
для нескольких значении

mintol

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Keystring RU & ENG
« Reply #7 on: January 31, 2017, 03:59:02 PM »
в вышеуказанный скрипт, в $text как вставлять системные переменные?
 и возможно ли сделать, чтобы в $text был разный текст и при этом этот скрипт был только один, а не для каждого $text
« Last Edit: January 31, 2017, 04:03:52 PM by mintol »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Keystring RU & ENG
« Reply #8 on: January 31, 2017, 04:10:46 PM »
в вышеуказанный скрипт, в $text как вставлять системные переменные?
 и возможно ли сделать, чтобы в $text был разный текст и при этом этот скрипт был только один, а не для каждого $text

В переменную вставить системную переменную?!

Проще всего создать рядом со скриптом текстовый файл, в него записать то что нужно копировать
Каждый проход скрипта будет считываться следующая строка и так по кругу
Code: (clickermann) [Select]
//Создаешь рядом со файл "Text.txt" и в него записываешь строки со своими текстами
IF(TFCOUNT("Text.txt") > $count)
   INC($count,1)
ELSE
   $count = 1
END_IF
$str = TFREAD ("Text.txt", $count)

TOCLIP($str) // скопировать текст в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)

//Каждый новый проход будет считываться новая строка с текстом

mintol

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Keystring RU & ENG
« Reply #9 on: January 31, 2017, 04:18:05 PM »
Спасибо всем за помощь  :)