Что нового

Скопировать выделенный текст в буфер обмена (без CTRL-C)

magic

Новичок
Сообщения
3
Репутация
0
Версия AutoIt: 3.3.0.0

Описание: Нужно решить проблему копирования выделенного текста в буфер обмена, без посылания клавиш CTRL-C. Проблема вызвана тем что в виртуальной машине VirtualBox клавишы CTRL и Win почему то не эмулируются - если кто знает, можно просто решить эту проблему )

Примечания:
Гостевая и основная ось - Win XP SP2. Решение через меню правую кнопку мыши знаю, но это сильно удлинняет время работы скрипта.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Функция
Код:
Clipput()
. В нее кладешь переменную с текстом. Саму переменную можно получить, например, через
Код:
WinGetText()
 
Автор
M

magic

Новичок
Сообщения
3
Репутация
0
А да ) Сорри не до конца все объяснил, нужно получить именно переменную из окна. Но окно во флэш, из за этого я не пользовался функцией WinGetText(), так как не могу определить заголовок окна.
Поэтому я думал сделать алгоритм так - двойнок клик, ctrl-c и ClipGet ()

Встала проблема именно эмулировать ctrl-c. Если можно сделать алгорит получение теста из окна во флэш другим способом, буду признателен.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Кажется, из флеша трудно будет достать.
Если у программы есть заголовок, то можно попробовать
Код:
WinGetTitle

Еще можно посмотреть название активного процесса.
На крайний случай есть программа от ABBYY, которая распознает текст в любой области экрана.
 

akoulev

Новичок
Сообщения
164
Репутация
2
Suppir сказал(а):
На крайний случай есть программа от ABBYY, которая распознает текст в любой области экрана.
Развивая эту мысль - есть ещё программа Клептомания (Kleptomania); работает неплохо.
 
Автор
M

magic

Новичок
Сообщения
3
Репутация
0
А как потом распознаный текст отправить в переменные autoit ?
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Я не работал пока с этой программой. Предполагаю, что она выдает результат в Edit-окне, в виде текста. И откуда результат можно скопировать с помощью функции
Код:
WinGetText



Добавлено:
Сообщение автоматически объединено:

Как правило,
Код:
WinGetText()
выдает много данных, откуда необходимые данные приходится вырезать с помощью функции
Код:
StringRegExp()
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 573
Репутация
334
А сочетание Shift+Inset пробовал?
 

El Panda

Продвинутый
Сообщения
101
Репутация
59
-Декомпилируешь флешку и узнаешь название переменной в которой храниться нужный текст.
-Открываешь IE на странице с флешкой

Код:
$oFlash = _IEGetObjByName($oIE, "flashobjname") ; где $oIE - экземпляр объекта IE, "flashobjname" - имя флеш элемента на странице
$var = $oFlash.GetVariable("itext.text") ; itext - имя переменной в которой храниться текст 
ClipPut($var)
 

DOZOMIGAMIUS

Новичок
Сообщения
17
Репутация
0
Если текс выделен - есть кнопка между правыми альтом и контролом , вместо мыши можешь нажать ее, а потом стрелками до копирования и ентер...
 
Верх