Автор Тема: Обход проблемы с кодировкой при использовании Send  (Прочитано 21476 раз)

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

Оффлайн HelpMe [?]

  • Новичок
  • *
  • Сообщений: 85
  • Репутация: 3
    • Награды
HelpMe  [?]
Цитировать
я чайник
Тебе сюда.

Send("ClipGet()") Уже не совсем чайник... ))

Русское сообщество AutoIt

Re: Обход проблемы с кодировкой при использовании Send
« Ответ #15 Отправлен: Декабрь 09, 2010, 00:10:29 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
HelpMe  [?]
Цитировать
Send("ClipGet()") Уже не совсем чайник
Чайник ещё тот :laugh:.


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн HelpMe [?]

  • Новичок
  • *
  • Сообщений: 85
  • Репутация: 3
    • Награды
$DR1 = ClipGet()
Send($DR1)
 :-[


Добавлено: Декабрь 09, 2010, 01:00:46
HelpMe  [?]
Цитировать
Send("ClipGet()") Уже не совсем чайник
Чайник ещё тот :laugh:.
3 дня только :(
« Последнее редактирование: Декабрь 09, 2010, 01:00:46 от HelpMe, Причина: Объединение сообщений »

Оффлайн Crusaderman [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
добрый. у меня англиская винда, и есть ячайка в экселе в ней и инглишь и раша символы. пробывал уже много способов, но при переносе в другое ПО либо краказяблы либо "?????".
Да и AutoIt не устоновле на пк, запускаю скрипт через AutoIt3.exe. 2 функции выше выдают такой же результат. при разных раскладка клавы. Причем Сенд в анг раскладке англ тект норм отправляет. мож библиотеки какие винды подключить надо?


Добавлено: Ноябрь 21, 2014, 08:55:31
долго посидев с бубном сам решил свою проблему. пуская и примитивно зато работает  ;D сильно не ругайте  :whistle:
да и кстати если тайминга нет, то иногда все равно косяки вылазиют.

Код: AutoIt [Выделить]
Func InvertLanguage($sString)
    Local $bEnglish[47] = [')', '!', '@', '#', '$', '%', '^', '&', '*', '(', 'A', "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ":", "+", "<", "_", ">", "?", "~", "{", "|", "}", '"']
    Local $sEnglish[47] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", ";", "=", ",", "-", ".", "/", "`", "[", "\", "]", "'"]
    Local $bRussian[47] = [')', '!', '"', '№', ';', '%', ' ', '?', '*', '(', 'Ф', "И", "С", "В", "У", "А", "П", "Р", "Ш", "О", "Л", "Д", "Ь", "Т", "Щ", "З", "Й", "К", "Ы", "Е", "Г", "М", "Ц", "Ч", "Н", "Я", "Ж", "+", "Б", "_", "Ю", ",", "Ё", "Х", "/", "Ъ", "Э"]
    Local $sRussian[47] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'ф', "и", "с", "в", "у", "а", "п", "р", "ш", "о", "л", "д", "ь", "т", "щ", "з", "й", "к", "ы", "е", "г", "м", "ц", "ч", "н", "я", "ж", "=", "б", "-", "ю", ".", "ё", "х", "\", "ъ", "э"]
    Local $sResult, $sCompare
    For $i = 0 To StringLen($sString)
    $sSymbol = Asc(StringMid($sString, $i, 1))
       For $y = 0 To 46
           $hWin = WinGetHandle('[ACTIVE]')
            $iLayout = _WinAPI_GetKeyboardLayout($hWin)
               If Asc($bEnglish[$y]) = $sSymbol Then
               if $iLayout = "0x04090409" Then
                  sleep(100)
                  Send($bEnglish[$y])
                  ExitLoop
               Else
                 _WinAPI_SetKeyboardLayout ($hWin , 0x0409)
                  sleep(100)
                  WinActivate($hWin)
                  Send($bEnglish[$y])
                  ExitLoop
                  EndIf
               EndIf
               If Asc($sEnglish[$y]) = $sSymbol Then
               if $iLayout = "0x04090409" Then
                  sleep(100)
                  Send($sEnglish[$y])
                  ExitLoop
               Else
                  _WinAPI_SetKeyboardLayout ($hWin , 0x0409)
                   sleep(100)
                   WinActivate($hWin)
                  Send($sEnglish[$y])
                  ExitLoop
                  EndIf
               EndIf
               If Asc($bRussian[$y]) = $sSymbol Then
               if $iLayout = "0x04190419" Then
                  sleep(100)
                  Send($bRussian[$y])
               Else
                  _WinAPI_SetKeyboardLayout ($hWin , 0x0419)
                   sleep(100)
                  WinActivate($hWin)
                  Send($bRussian[$y])
                  EndIf
               EndIf
               If Asc($sRussian[$y]) = $sSymbol Then
               if $iLayout = "0x04190419" Then
                  sleep(100)
                  Send($sRussian[$y])
               Else
                  _WinAPI_SetKeyboardLayout ($hWin , 0x0419)
                   sleep(100)
                  WinActivate($hWin)
                  Send($sRussian[$y])
                  EndIf
               EndIf
            Next
          Next
EndFunc

« Последнее редактирование: Ноябрь 25, 2014, 08:57:20 от Crusaderman, Причина: Объединение сообщений »

Русское сообщество AutoIt

Re: Обход проблемы с кодировкой при использовании Send
« Ответ #18 Отправлен: Ноябрь 20, 2014, 14:29:02 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
2671 Просмотров
Последний ответ Декабрь 15, 2009, 03:03:15
от Sirioga
3 Ответов
3954 Просмотров
Последний ответ Май 26, 2011, 18:29:14
от CreatoR
19 Ответов
23142 Просмотров
Последний ответ Ноябрь 03, 2015, 02:23:08
от Skif_off
0 Ответов
1267 Просмотров
Последний ответ Август 13, 2013, 19:10:32
от madmasles
5 Ответов
3217 Просмотров
Последний ответ Октябрь 08, 2013, 15:41:07
от CreatoR
12 Ответов
4141 Просмотров
Последний ответ Октябрь 29, 2013, 10:38:30
от C2H5OH
7 Ответов
2541 Просмотров
Последний ответ Февраль 21, 2014, 17:49:09
от AZJIO
5 Ответов
1488 Просмотров
Последний ответ Март 26, 2015, 16:40:39
от noob
14 Ответов
2477 Просмотров
Последний ответ Май 21, 2015, 17:19:07
от madmasles
17 Ответов
1956 Просмотров
Последний ответ Март 19, 2017, 23:44:08
от Alofa