Воскресенье - время для отдыха, поэтому это Zenno:bo.
Использование буфера обмена в автоматизации следует избегать, но в некоторых случаях я использую его, потому что:
Эмуляция текста занимает слишком много времени (если установлен быстрый режим, текст не распознается/область текста не активирована). Для целей SEO, когда я не могу отправить HTML/разметку в качестве гостя. Чтобы избежать конфликтов в многопоточном использовании буфера обмена, я использую: lock(SyncObjects.InputSyncer), но это работает только во время выполнения блока C#.
Однако в некоторых случаях я выполняю операции копирования и вставки, между которыми есть несколько блоков, которые не являются пользовательскими блоками C# (и которые я не могу/не хочу преобразовывать). Поэтому на данный момент я использую простое решение: внешний файл, который действует как "блокировка" с булевым выбором, управляющим доступом к буферу обмена! Цель состоит в том, чтобы убедиться, что когда элемент копируется в буфер обмена, это не другой поток вставляет его, потому что между блоками есть задержка в несколько секунд, и может быть переплетение.
Я создал нижеуказанный код, что вы думаете об использованном методе?
Могло ли быть более простое/надежное решение?
// Блокировка: True
// Построить путь к файлу
var lockFilePath = Path.Combine(project.Directory, "01 - The Base\01 - Cookies\The Lock.txt");
// Проверить, доступен ли буфер обмена
if (File.ReadAllText(lockFilePath) == "False")
{
// Буфер обмена доступен, записать "True", чтобы заблокировать его
File.WriteAllText(lockFilePath, "True");
}
else
{
// Подождите, пока буфер обмена не станет доступным
while (File.ReadAllText(lockFilePath) != "False")
{
// Подождите 1 секунду перед повторной попыткой
Thread.Sleep(1000);
}
// Как только буфер обмена станет доступным, записать "True", чтобы заблокировать его
File.WriteAllText(lockFilePath, "True");
}
Затем в конце процесса мы записываем "False" в текстовый файл.
Заранее спасибо за ваш совет!
PS :
Прошу прощения за возможные странности в моем русском тексте, я использую сервис перевода для своих сообщений. На данный момент я не владею русским языком, но с большим интересом и вниманием читаю русскую часть форума благодаря сервису перевода. Все ясно, что именно здесь, в русскоязычном сообществе, скрывается больше всего ценной информации. Так что, если я хочу продвинуться с Zenno, мне нужно отправиться на сторону русского сообщества!
На данный момент, единственное слово, которое я знаю на русском, это 'здоровье'