- Регистрация
- 11.08.2016
- Сообщения
- 51
- Благодарностей
- 9
- Баллы
- 8
Привет.
У меня есть приложение вне зенки, им управляю с помощью AutoItX.
У меня есть код в кубиках.
Клик по полю ввода.
Потом
кубик с
Берем в буфер обмена текст
и с
вставляем текст
Проблема заключается в сл. когда шаблон два приложения паралельно начинает работать. То естественно клики мышки и вставки в поле начнается чехорда.
Сейчас мне нужно чтобы когда начиналась отработка определенного действия, чтобы делаласб блокировка мыши и буфера обмена, чтобы другой поток не мог в это время сделать действие.
Как это правильно написать? Можете подсказать?
Предполагаю что как то так.
Надо все эти кубики заключить в lock(SyncObjects.InputSyncer) {Здесь мои кубики};
И действительно ли будет происходить блокировка мыши, во время выполнения этого кода с блокировкой.
Хочется чтобы работало так. Есть n потоков. Когда что либо происходит с ресурсами ОС (мышь, буфер обмена, и другие функции AutoItX), чтобы другие потоки ждали выполнения этого куска кода, и если свободно начинали выполнение своего куска кода, при этом выстраивалась как бы очередь. Между выполнениями кода есть проверки и паузы, поэтом есть время на выполнение кода если будет "выстроена очередь"
Надеюсь донес суть))
У меня есть приложение вне зенки, им управляю с помощью AutoItX.
У меня есть код в кубиках.
Код:
var handle = AutoItX.WinGetHandle(project.Variables["window"].Value);
int minus_x = int.Parse(project.Variables["minus_x"].Value);
int plus_y = int.Parse(project.Variables["plus_y"].Value);
AutoItX.WinActivate(handle);
AutoItX.MouseClick("LEFT", 1109-minus_x, 337+plus_y, 1, 0);
Потом
кубик с
Код:
System.Windows.Forms.Clipboard.Clear();
var descr = project.Variables["title"].Value;
System.Windows.Forms.Clipboard.SetText(descr);
и с
Код:
var handle = AutoItX.WinGetHandle(project.Variables["window"].Value);
AutoItX.WinActivate(handle);
AutoItX.Send("{CTRLDOWN}v{CTRLUP}");
AutoItX.Send("{TAB}");
Проблема заключается в сл. когда шаблон два приложения паралельно начинает работать. То естественно клики мышки и вставки в поле начнается чехорда.
Сейчас мне нужно чтобы когда начиналась отработка определенного действия, чтобы делаласб блокировка мыши и буфера обмена, чтобы другой поток не мог в это время сделать действие.
Как это правильно написать? Можете подсказать?
Предполагаю что как то так.
Надо все эти кубики заключить в lock(SyncObjects.InputSyncer) {Здесь мои кубики};
И действительно ли будет происходить блокировка мыши, во время выполнения этого кода с блокировкой.
Хочется чтобы работало так. Есть n потоков. Когда что либо происходит с ресурсами ОС (мышь, буфер обмена, и другие функции AutoItX), чтобы другие потоки ждали выполнения этого куска кода, и если свободно начинали выполнение своего куска кода, при этом выстраивалась как бы очередь. Между выполнениями кода есть проверки и паузы, поэтом есть время на выполнение кода если будет "выстроена очередь"
Надеюсь донес суть))