Код:
HotKeySet("{F2}", "_CopyLink")
HotKeySet("{F3}", "_SendLink")
HotKeySet("{F4}", "_Exit")
TrayTip ("AutoIt", "Скрипт запущен", 1)
sleep(1000)
TrayTip("clears any tray tip","",0)
While 1
Sleep(100)
WEnd
Func _CopyLink()
$pos = MouseGetPos()
MouseClick("right")
MouseMove($pos[0]+10, $pos[1]+5, 1)
MouseClick("left")
$link=ClipGet()
Send("!{TAB}")
TrayTip ("Скопировали ссылку", $link, 1)
EndFunc
Func _SendLink()
Send("!{F7}")
WinWaitActive("Адрес гиперссылки")
Send("^v") ############## вот в этом месте не работает
Send("{ENTER}")
EndFunc
Func _Exit()
TrayTip ("AutoIt", "Завершение работы скрипта", 1)
Sleep(1000)
Exit
EndFunc
Функция _CopyLink копирует в буфер обмена адрес ссылки в специальной программе (затем делает ALT-TAB для перехода в другую программу). Работает нормально. Ссылка представляет собой некое число, например, "123"
Функция _SendLink() вставляет эту ссылку в форму другой программы. Для этог на клавиатуре необходимо нажать:
1) ALT(зажать)F7
2) LCTRL(зажать)v (т.е. просто "вставить")
3) ENTER
Однако у меня не срабатывает пункт 2). Т.е. текст не передается из буфера в форму, а просто сразу жмется enter. Где тут возможна ошибка?
Добавлено:
Сообщение автоматически объединено:
Если в функцию добавить sleep'ы:
Код:
Func _SendLink()
Send("!{F7}")
WinWaitActive("Адрес гиперссылки")
Sleep(100)
Send("^v")
Sleep(100)
Send("{ENTER}")
EndFunc
то в форму копируется НЕ данные из буфера, а символ "v".
Добавлено:
Сообщение автоматически объединено:
Кажется, удалось, наконец, разобраться!
Нужно переписать функцию _SendLink() в следующем виде:
Код:
Func _SendLink()
$Link=ClipGet() # т.е. мы присваиваем переменной значение из буфера
Send("!{F7}")
WinWaitActive("Адрес гиперссылки")
Sleep(100)
Send($Link) # шлем в форму на CTRL-v, а переменную со значением из буфера
Sleep(100)
Send("{ENTER}")
EndFunc
Так заработало!