one
Client
- Регистрация
- 22.09.2015
- Сообщения
- 6 833
- Благодарностей
- 1 275
- Баллы
- 113
У меня метод из старто поста уже сколько лет работает. Встявляет картинки в пост на ФБ. В конкурсах где то есть этот шаблон с этим методом.
запросто... просто посмотри какой лок используется в коде и сразу будет ясно в каких случаях он не будет работать.Хз как под локом он может пересечся. Или речь идет о пересечении при работе человека за пк?
Не врублюсь, а чем этот лок не подходит?запросто... просто посмотри какой лок используется в коде и сразу будет ясно в каких случаях он не будет работать.
не то что всегда не будет работать... но как всегда есть НО...
Видимо лок распределяется на один проект, а у людишек проекты одновременно работают с одним и тем же функционалом.Не врублюсь, а чем этот лок не подходит?
Нет, этот лок не работает на один проект.Видимо лок распределяется на один проект, а у людишек проекты одновременно работают с одним и тем же функционалом.
// Блокировка: 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");
}
Есть большая вероятность что при больших объемах потоков проект зациклиться и станет работать медленно, разумнее всего при итерации попыток вставки пробовать другие методы, такие как SET, либо эмуляцию клавиатуры на крайний вариантВоскресенье - время для отдыха, поэтому это Zenno:bo.
Использование буфера обмена в автоматизации следует избегать, но в некоторых случаях я использую его, потому что:
Эмуляция текста занимает слишком много времени (если установлен быстрый режим, текст не распознается/область текста не активирована). Для целей SEO, когда я не могу отправить HTML/разметку в качестве гостя. Чтобы избежать конфликтов в многопоточном использовании буфера обмена, я использую: lock(SyncObjects.InputSyncer), но это работает только во время выполнения блока C#.
Однако в некоторых случаях я выполняю операции копирования и вставки, между которыми есть несколько блоков, которые не являются пользовательскими блоками C# (и которые я не могу/не хочу преобразовывать). Поэтому на данный момент я использую простое решение: внешний файл, который действует как "блокировка" с булевым выбором, управляющим доступом к буферу обмена! Цель состоит в том, чтобы убедиться, что когда элемент копируется в буфер обмена, это не другой поток вставляет его, потому что между блоками есть задержка в несколько секунд, и может быть переплетение.
Я создал нижеуказанный код, что вы думаете об использованном методе?
Могло ли быть более простое/надежное решение?
Затем в конце процесса мы записываем "False" в текстовый файл.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"); }
Заранее спасибо за ваш совет!
PS :
Прошу прощения за возможные странности в моем русском тексте, я использую сервис перевода для своих сообщений. На данный момент я не владею русским языком, но с большим интересом и вниманием читаю русскую часть форума благодаря сервису перевода. Все ясно, что именно здесь, в русскоязычном сообществе, скрывается больше всего ценной информации. Так что, если я хочу продвинуться с Zenno, мне нужно отправиться на сторону русского сообщества!
На данный момент, единственное слово, которое я знаю на русском, это 'здоровье'
а буфер обмена как был один и не предназначеный для работы в многопотоке, так и осталсяДрузья, появилась новая инфа на счет вставки, но с помощью хот кеев. По сути метод прост: Устанавливаете софт который биндит хоткеи и эмулируете для каждого отдельного проекта с буфером обмена свой отдельный метод вставки. Так же возможно напрямую менять файл с вариацией вставки текста.
Напитонил софт для вас, работает как с буфером так и с методом быстрой прописи текста, а так же есть настройка и пример. Не забудьте установить python с несколькими библиотеками, которые найдете в кодеДрузья, появилась новая инфа на счет вставки, но с помощью хот кеев. По сути метод прост: Устанавливаете софт который биндит хоткеи и эмулируете для каждого отдельного проекта с буфером обмена свой отдельный метод вставки. Так же возможно напрямую менять файл с вариацией вставки текста.
что это меняет в глобальном смысле кроме того, что появился дополнительный костыль?Напитонил софт для вас, работает как с буфером так и с методом быстрой прописи текста, а так же есть настройка и пример. Не забудьте установить python с несколькими библиотеками, которые найдете в коде
Чтобы применить в инстансе необходима команда:
instance.ActiveTab.KeyEvent("Горячая клавиша", "press", "Клавиша с которой начинается комбинация");
Меняет то что теперь работает одна программа через которую проходит весь буфер обмена, вам теперь не нужно постоянно выполнять в каждом проекте и потоке кусок кода который отвечает за прерывание потока и установку текста в буфер. Все работает уже скомпилированным и тем является быстрым решением для многопоточного многопроектного проектища)что это меняет в глобальном смысле кроме того, что появился дополнительный костыль?
Единственный костыль с которым вы столкнетесь, это спам горячей клавиши если питон не включен.вы просто братья по несчастью, которые хотят быстрой и правильной работы от чего то одного. Так вот я предоставил вам несколько вариаций обхода неправильной логики дабы прийти к одному годному варианту.
Ах вы наши сладенькие, я вам в праве вообще не отвечатьничего не меняет... просто глянь его историю сообщений
думаю он тебе ответит примерно так хотя может преды научили общаться...
Посмотреть вложение 121190
любой код=часть природыбудто нейронка пишет