1 (изменено: reghor, 2012-11-29 01:19:12)

Тема: AHK: Отделение первого слова от текста из карточки лингво

Необходимо отделить первое слово из перевода английского слова из словаря лингво. Для примера вот перевод:
drill I [drɪl] 1. 1) бур; бурав; сверло Syn: auger , gimlet 2) дрель; перфоратор electric drill — электрическая дрель hand drill — ручная дрель dentist's drill — бормашина hammer drill — ручная электрическая дрель с перфоратором
Здесь необходимо отделить слово drill от остального тектста и наооборот отделить текст от этого слова. Что то я пробовал, так и не вышло, тупо написав для теста небольшой текст заранее, вроде что то выходило, но когда дело доходит до текста из карточки лингво, ничего не получается.

2

Re: AHK: Отделение первого слова от текста из карточки лингво

Выкладывайте свой код, помогём.

3

Re: AHK: Отделение первого слова от текста из карточки лингво

Вот код, который был изначально скачан с одного блога

AddSelectionAsTranslationToAnki()
{
   IfWinNotExist Add Items ahk_class QWidget
   {
      MsgBox Error: Anki is not running
      return
   }
   
   Send ^c                                 ; Copy selection to clipboard
   Translation = %Clipboard%               ; Save translation
   WinGetTitle, Title, A                   ; Get title of Lingvo card
   Word := RegExReplace(Title, " \(.*\)$") ; Remove language pair to get word
   
   WinActivate Add Items ahk_class QWidget
   
   Send %Word%         ; Send word to front
   Send {Tab}          ; Skip to back
   Send %Translation%  ; Send translation to back
   
   ; Move mouse to the center of Add Items window
   WinGetPos,,, width, height,A
   center_x:=width/2
   center_y:=height/2
   MouseMove,center_x,center_y
}
 
#IfWinActive ahk_class Lv14_CardFrame
^v::AddSelectionAsTranslationToAnki()
#IfWinActive

Данный код не работает, потому что у меня не видит почему то заголовок окна (окна карточки слова в лингво). Проверял через autospy - на месте заголовка пустое место. Win 7 64. lingvo x3. Цель данного скрипта загонять быстро перевод слова в анки вместе с самим словом по-английски. Поэтому я решил, что нужно просто отделить перевод слова от самого слова по английски и наооборот.

AddSelectionAsTranslationToAnki()
{
   IfWinNotExist Add Items ahk_class QWidget
   {
      MsgBox Error: Anki is not running
      return
   }
   
   Send ^c                                 ; Copy selection to clipboard
   Translation = %Clipboard%               ; Save translation
   ; Здесь я хочу достать с помощью RegExMatch слово и перевод из текста карточки лингво.
   
   WinActivate Add Items ahk_class QWidget
   
   Send %Word%         ; Send word to front
   Send {Tab}          ; Skip to back
   Send %Translation%  ; Send translation to back
   
   ; Move mouse to the center of Add Items window
   WinGetPos,,, width, height,A
   center_x:=width/2
   center_y:=height/2
   MouseMove,center_x,center_y
}
 
#IfWinActive ahk_class Lv14_CardFrame
^v::AddSelectionAsTranslationToAnki()
#IfWinActive