День добрый! Столкнулся со странной ситуацией.
Есть узкоспециализированная программа с очень корявым интерфейсом, для упрощения набросал простенький скрит - однотипные действия выполняет кибор.
Скрипт поработал какое-то время без нареканий, но совсем недавно появился баг.
Во время выполнения скрипта некоторый текст в окне программы выделяется (команда mousetransfer), затем задается сочетание горячих клавиш
CODE:keydown (CONTROL); pause (300); key ('C'); pause (300); keyup (CONTROL);
Затем производится чтение из буфера readclipboard в переменную string. Так вот в буфере ничего нет! Либо ничего, либо предыдущее (до выполнения скрипта) копирование в буфер.
Прикол в том, что не работает данное сочетание КОНТРЛ+С при работе КИБОРА только в моей узкоспециализированной программе, при тестировании ЭТОГО же скрипта в блокноте все ок.
Но еще больший прикол в том, что горячие клавиши вручную в этой программе работают! Я делал запись действий кибором, повторял их - не работают. То есть руками все работает, а то же самое кибором - нет.
ДОПОЛНЕНИЕ:
если в скрипте убрать строку
CODE:keydown (CONTROL); pause (300); key ('C'); pause (300); keyup (CONTROL);
и вместо нее поставить паузу подольше, затем выполнить горячие клавиши руками с клавиатуры (КОНТРЛ+С) - все работает. Раскладку проверял - С английское в скрипте
(Добавление)
РЕШЕНИЕ:
Методом научного тыка в сочетании с рутинным тестированием оказалось, что в случае применения скрипта в моей корявой узкоспециализированной программе есть разница между key ('C'; и key ('c';
В прочих же программах разницы для выполнения сочетания КОНТРЛ+С нет. Запись действий кибор ловит заглавную С.
Извините за беспокойство.
CODE:function копировать()
{keydown (CONTROL); pause (300); key ('c'); pause (300); keyup (CONTROL);} (Отредактировано автором: 23 Декабря, 2015 - 17:36:30) |