101

Re: AHK: Break и Shift+Break как в пунто свитчере

Тем не менее, им многие до сих пор пользуются, например.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

102

Re: AHK: Break и Shift+Break как в пунто свитчере

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

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

103

Re: AHK: Break и Shift+Break как в пунто свитчере

teadrinker пишет:

А вот RegExReplace() ничем не лучше, по-моему, перебора символов, вряд ли этот вариант лучше по производительности.

Хотя, выглядит всё же, вроде, логичнее, имеет смысл заменить.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

104

Re: AHK: Break и Shift+Break как в пунто свитчере

serzh82saratov пишет:

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

Ну всё же разработчики от ANSI-версии пока не отказались, так что рано "бить по рукам" . Другое дело, когда упорно продолжают использовать basic-версию.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

105

Re: AHK: Break и Shift+Break как в пунто свитчере

Отредактировал.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

106

Re: AHK: Break и Shift+Break как в пунто свитчере

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

Вопрос ещё актуален?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

107

Re: AHK: Break и Shift+Break как в пунто свитчере

В общем-то да, почему не так:

ConvertRegistr(Text)
{
   static Chars := "ёйцукенгшщзхъфывапролджэячсмитьбюqwertyuiopasdfghjklzxcvbnm"
                 . "ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNM" 

   Loop, parse, Text
      NewText .= (found := InStr(Chars, A_LoopField, 1)) 
         ? SubStr(Chars, found - 59, 1) : A_LoopField
   Return NewText
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

108

Re: AHK: Break и Shift+Break как в пунто свитчере

http://s019.radikal.ru/i606/1203/58/7b55e7d0f1c8.jpg

Баг головного мозга, надо поправить.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

109

Re: AHK: Break и Shift+Break как в пунто свитчере

А я подумал — для красоты.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

110

Re: AHK: Break и Shift+Break как в пунто свитчере

К сожалению, нет http://xbmc.ru/forum/images/smilies/facepalm.gif

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

111

Re: AHK: Break и Shift+Break как в пунто свитчере

У меня тоже что-то с кодировкой стало. Скрипт сохранён как UTF-8 без BOM, но почему-то из анг. получаются кракозябры, а кирилица вообще не меняется.

ќР†ЎРС!

  Даже не знаю после чего изменилось. Может после обновления Windows?

112

Re: AHK: Break и Shift+Break как в пунто свитчере

Скрипты должны сохраняться только с BOM в любом формате из ANSI, UTF-8, UTF-16.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

113

Re: AHK: Break и Shift+Break как в пунто свитчере

Foma пишет:

У меня тоже что-то с кодировкой стало. Скрипт сохранён как UTF-8 без BOM, но почему-то из анг. получаются кракозябры, а кирилица вообще не меняется.

ќР†ЎРС!

  Даже не знаю после чего изменилось. Может после обновления Windows?

Тоже самое. Слово "Windows" набранное русской раскладкой "Цштвщцы", скриптом переделывается в "??????".
Скрипт сохраняю в UTF-8 c галкой BOM. Windows 8.1 64bit.

114

Re: AHK: Break и Shift+Break как в пунто свитчере

У меня семёрка, с таким не сталкивался. Попробуйте это почитать. И ещё здесь вариант решения подобных проблем в прошлых версиях Windows правкой реестра (в последней трети страницы).
Только что проэкспериментировал, что при сохранении скрипта в UTF-8 без BOM действительно делает из латинских символов кракозябры, а с кириллицей ничего не делает. Советую сохранять скрипты в ANSI. Если в юникоде — то обязательно с BOM.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

115 (изменено: mafckz, 2015-04-10 06:45:13)

Re: AHK: Break и Shift+Break как в пунто свитчере

В выложенном скрипте меня не устраивало, что когда после написанного слова ставится пробел, и нажимается клавиша изменения раскладки, то изменения не происходили (это так задумано или нет?) К примеру, punto switcher изменяет текст в данном случае.

Сильно в коде не разбирался, но не понял зачем такой усложненной код в функции GetWord начиная со 130 строки (цикл While A_Index < 10). Поэтому начиная с этой строки и до конца фунции я заменил код на

   
else 
   {
    Send ^+{left}
    SendInput, ^{vk43}
    ClipWait, 0
    if !ErrorLevel
      Return Clipboard
   } 

Теперь скрипт изменяет слово даже после поставленного после него пробела...

116

Re: AHK: Break и Shift+Break как в пунто свитчере

mafckz пишет:

когда после написанного слова ставится пробел... то изменения не происходили (это так задумано или нет?)

Да, так и задумано, после пробела скрипт сработает, если только выделить предыдущий текст.

не понял зачем такой усложненной код

Скрипт многократно тестировался на разных сайтах и текстовых редакторах, где разная реакция на отправку клавиш. Если у вас лучше работает ваш вариант, то почему нет. А я в данном случае предпочитаю пользоваться правилом «работает — не трогай».

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

117

Re: AHK: Break и Shift+Break как в пунто свитчере

teadrinker пишет:

Да, так и задумано, после пробела скрипт сработает, если только выделить предыдущий текст

Все-таки это не совсем верный подход с точки зрения "юзер-френдли" интерфейса. Пользователь набрал слово, перевел его по хоткею в другую раскладку - работает. Снова набрал слово, отделил пробелом - жмет хоткей - а программа ему в ответ: "Извини,  я понимаю, что именно ты хочешь сделать, но у тебя предыдущее слово - ПРОБЕЛ, извини, такие правила."

+ -

Пример с пешеходами. В Советском Союзе делали для них дорожки по утвержденному плану, и ставили грозные таблички "По газону не ходить!!!". В Германии сначала смотрели, где люди протоптали дорожки наиболее удобными маршрутами, а потом их асфальтировали. У вас налицо склонность к 1му варианту. ))

118

Re: AHK: Break и Shift+Break как в пунто свитчере

+ дорожки

Дорожки так проложили в каком-то советском институте. А про Германию не очень верится. Там же орднунг. Айн-цвай-драй-полицай.

119 (изменено: serzh82saratov, 2015-11-18 03:32:28)

Re: AHK: Break и Shift+Break как в пунто свитчере

Может кто то сочтёт полезным переводить начало слов в верхний регистр:


ConvertTitle(delimiters = " ")
{ 
	SelText := GetWord(TempClipboard)
	SelText := RegExReplace(SelText, "(.)", Format("{:Ts}", SubStr(SelText, 1, 1)), , 1), pos := 1
	While (pos := RegExMatch(SelText, "S)[\Q" delimiters "\E][a-zа-яё]", M, pos))
		SelText := RegExReplace(SelText, ".", Format("{:Ts}", SubStr(M, 2, 1)), , 1, ++pos)
	Clipboard := SelText
	SendInput, ^{vk56}   ; Ctrl + V
	Sleep, 200
	Clipboard := TempClipboard
}

Например в кодинге можно использовать свои разделители:

ConvertTitle(" {[._""`n")
ab_ab ab{ab.ab"ab[ab`nab

Заменит здесь все "a" на титульные.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

120 (изменено: serzh82saratov, 2015-11-18 16:15:05)

Re: AHK: Break и Shift+Break как в пунто свитчере

Собственно изначальный вопрос и не задал:

delimiters := "`n {([,._"""

SelText = абв_абв абв{абв.абв"абв[абв`nабв,абв

SelText := RegExReplace(SelText, "(.)", Format("{:Ts}", SubStr(SelText, 1, 1)), , 1), pos := 1
While (pos := RegExMatch(SelText, "S)[\Q" delimiters "\E][a-zа-яё]", M, pos))
	SelText := RegExReplace(SelText, ".", Format("{:Ts}", SubStr(M, 2, 1)), , 1, ++pos)
	; или   SelText := SubStr(SelText, 1, pos) Format("{:Ts}", SubStr(M, 2, 1)) SubStr(SelText, ++pos+1)
MsgBox % SelText

Можно ли упростить?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

121

Re: AHK: Break и Shift+Break как в пунто свитчере

teadrinker
В последней версии строку из символов /// или {{{ не переводит, хотя например [[[ или /{[ переводит.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

122

Re: AHK: Break и Shift+Break как в пунто свитчере

Фигурные скобки добавлю, а по поводу слешей — так они могут быть и в русской, и в английской раскладке, если текст состоит только из них — непонятно, куда переводить. Можно ориентироваться на текущую раскладку, конечно, но не стопроцентный вариант — вдруг юзер уже сам перевёл в другую.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

123

Re: AHK: Break и Shift+Break как в пунто свитчере

Добавил недостающие символы. Если невозможно определить раскладку языка, исходя из анализа напечатанных символов, скрипт ориентируется на текущую раскладку окна.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

124

Re: AHK: Break и Shift+Break как в пунто свитчере

Как исправить следующие ошибки:
1. :^ (шифт-6) не перекодируется.
2. (iban-6) перекодируется на (iban-(шифт-6)
3. http://ф перекодируется на реезЖ..ф - хотя я набрал только "ф" и, по логике, должно получиться http://a

И как сделать:
4. Мне нужна перекодировка СТРОГО на раскладку, противоположную текущей (например, если смесь тех и этих букв, я именно раскладкой укажу нужное направление).
5. Без учёта пробелов и переводов строк, а то перекодируется лишнее, а в текстовых полях на некоторых сайтах делается лишний перевод строки.
По-моему, если от набранного слова отошёл - нечего мудрить, перекодируешь его через выделение.

Спасибо, вообще очень классный и нужный скрипт. Я сам писал такой, но там не было смены регистра, и он не работает с AHK_L.

125

Re: AHK: Break и Shift+Break как в пунто свитчере

PS. Посмотрел и разобрался. Спасибо.