- Регистрация
- 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), чтобы другие потоки ждали выполнения этого куска кода, и если свободно начинали выполнение своего куска кода, при этом выстраивалась как бы очередь. Между выполнениями кода есть проверки и паузы, поэтом есть время на выполнение кода если будет "выстроена очередь"
Надеюсь донес суть))




 
 
		