Я запускаю макрос Excel из скрипта AutoHotKey, а затем жду, пока он завершится sh с использованием буфера обмена. Макрос Excel заканчивается строкой, которая помещает k в буфер обмена:
With New MSForms.DataObject
.SetText k
.PutInClipboard
End With
В этом сценарии autohotkey есть строка:
Loop {
} Until clipboard = "k"
, которая выполняется во время работы макроса. Когда макрос excel завершен, он помещает k в буфер обмена, и autohotkey обнаруживает это и продолжает работу со сценарием. Дело в том, что это не работает. Я получаю сообщение об ошибке, что Excel не может использовать буфер обмена. Он используется другим приложением, которое, я думаю, является autohotkey.
Есть ли способ решить эту проблему? Или есть другой способ, чтобы скрипт и макрос говорили друг с другом? Я хочу запустить макрос из скрипта autohotkey, а затем дождаться окончания макроса sh, прежде чем возобновить работу скрипта. Это скрипт autohotkey:
^!a::
OrdersLeftToPick:
click 400, 460
clipwait, 70
sleep, 1000
click 8, 2400
sleep, 100
send ^k ;Ctrl + K, starts the macro
loop {
} until clipboard = "k" ;wait until "k" is in the clipboard then resume the script
sleep, 1000
goto OrdersLeftToPick