Тема: AHK: узнать, что обрабатываемый файл занят другим процессом
Всем привет!
При помощи AHK запускаю Minicap, которая делает скрин рабочего стола и перезаписывает один и тот же файл с частотой около 4000 мс. Этот же файл периодически обрабатывается скриптом другой программы (1 раз в 500, 1 3500 мс, т.е. в какие-то моменты есть совпадения).
Из-за этого периодически вылетает ошибка "процесс не может получить доступ к файлу так как файл занят другим процессом". Логичным решением будет проверять не занят ли файл другим процессом перед тем как запускать Minicap.
Как это сделать? В голову приходит только что-то вроде следующего алгоритма:
1. Берем исходный файл
2. Делаем его копию
3. Пробуем перезаписать копию в оригинал
4. Если ошибка - ждем какое-то время, повторяем
5. Если ошибки нет - запускаем Minicap и уже "на боевую" скриншотим с перезаписью
Проблема в том что делается 20 скринов (по 10 каждой из двух областей с периодичностью около 3700 мс) и нагромождать на каждый вызов конструкцию с проверкой приведет к увеличению общей длительности, что нежелательно.
Может посоветуете что-то более экологичное? Среди функционала не нашел готовой функции для такой задачи.
p.s. сейчас запустил на прогон с использованием RunAs, пока ошибок одновременного доступа нет, но этот вариант не подходит для постоянного использования.

