День добрый!
Вопрос по рабочим столам в Win10.
Подскажите пожалуйста, а можно эмулировать в кликере перетаскивание окна на рабочий стол 2,3 и тп?
set #ld linedelay
set linedelay 40
//
set #cw 1 // номер рабочего стола, в котором сейчас находится окно.
set #tw 4 // в какой стол переместить
set workwindow 394820 // окно, которое будем перемещать
//
showwindow workwindow
if #cw < #tw
set #a 2
else
set #a 1
end_if
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
wait 350
sendex_down ~{F10}
sendex_up ~{F10}
wait 15
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #tw - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
set linedelay #ld
end_script
set #ld linedelay
set linedelay 40
//
set #cw 1 // номер рабочего стола, в котором сейчас находится окно.
set #tw 4 // в какой стол переместить
set workwindow 394820 // окно, которое будем перемещать
//
showwindow workwindow
if #cw < #tw
set #a 2
else
set #a 1
end_if
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
wait 350
sendex_down ~{F10}
sendex_up ~{F10}
wait 15
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #tw - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
set linedelay #ld
end_script
set #ld linedelay
set linedelay 40
//
set #cw 1 // номер рабочего стола, в котором сейчас находится окно.
set #tw 4 // в какой стол переместить
set workwindow 394820 // окно, которое будем перемещать
//
showwindow workwindow
if #cw < #tw
set #a 2
else
set #a 1
end_if
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
wait 350
sendex_down ~{F10}
sendex_up ~{F10}
wait 15
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #tw - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
set linedelay #ld
end_script
while hour != 10 or min != 0 // ждать когда будет 10 часов 0 минут
wait 10
end_while
// дальше скрипт
end_script
Wait 3h
set #ld linedelay
set linedelay 40
//
set #cw 1 // номер рабочего стола, в котором сейчас находится окно.
set #tw 4 // в какой стол переместить
set workwindow 394820 // окно, которое будем перемещать
//
showwindow workwindow
if #cw < #tw
set #a 2
else
set #a 1
end_if
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
wait 350
sendex_down ~{F10}
sendex_up ~{F10}
wait 15
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #tw - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
set linedelay #ld
end_script
call vDesktop 1 2 5116634
end_script
proc vDesktop #iz #v #handle
set linedelay 0
set workwindow #handle
showwindow workwindow
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
if #iz < #v
set #a 2
else
set #a 1
end_if
wait 400
sendex_down ~{F10}
sendex_up ~{F10}
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #v - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
end_proc
call vDesktop 1 2 5116634
end_script
proc vDesktop #iz #v #handle
set linedelay 0
set workwindow #handle
showwindow workwindow
sendex_down {WindowsLeft}{Tab}
sendex_up {WindowsLeft}{Tab}
if #iz < #v
set #a 2
else
set #a 1
end_if
wait 400
sendex_down ~{F10}
sendex_up ~{F10}
sendex {Down}
sendex {Down}
sendex {Down}
sendex {Right}
repeat #v - #a
sendex {Down}
end_repeat
sendex {Enter}
sendex {Escape}
end_proc
set #d findcolor (1164, 740 1164, 742 1 1 (3798088-4387912) %arr 2 -1 3 abs)
if #d > 0
wait 2000
else
log Цвет не найден!
end_if
set #d findcolor (1164, 740 1164, 742 1 1 (3798088-4387912) %arr 2 -1 3 abs)
if #d > 0
wait 2000
set #d findcolor (1164, 740 1164, 742 1 1 (3798088-4387912) %arr 2 -1 3 abs)
while #d > 0
set #d findcolor (1164, 740 1164, 742 1 1 (3798088-4387912) %arr 2 -1 3 abs)
wait 2000
if #d = 0
log Цвет не найден!
end_if
end_while
set #handle findwindow ("Manager") // найти окно
set workwindow #handle // сделать его рабочим
set windowpos 3383, 515
wait 2000
kleft 3815, 560 abs
wait 8m
set #d findcolor (3815, 560 3815, 562 1 1 (3798088-4387912) %arr 2 -1 3 abs)
while #d > 0
set #d findcolor (3815, 560 3815, 562 1 1 (3798088-4387912) %arr 2 -1 3 abs)
wait 10000
if #d = 0
log Цвет не найден!
end_if
end_while
end_script
set delimiter ' '
init_arr %a (1) "1, 2 3, 4" "5, 6 7, 8" "9, 10 11, 12" "13, 14 15, 16" "17, 18 19, 20" "21, 22 23, 24"
while size(%a[1]) > 0
for #i 1 size(%a[1])
set $a %a[1 #i]
set #a findcolor ($a 1 1 (3798088-4387912) %arr 2 -1 3 workwindow)
if #a = 0
kleft x y
delete_array %a #i
break
end_if
end_for
end_while
end_script
while_not 450, 160 255 and 480, 160 255 // повторяем цикл пока во всех точкаx 1 и 2 не получим желаемый цвет
//точка 1 цвет известен но он нам не подходит, нужно сделать клик
if 450, 160 16777215 //если есть цвет координаты в точке 1 и цвет X, Y Color
left 450, 160 //куда нужно кликнуть в точке 1
wait 100
end_if
wait 100
//точка 2, цвет в данный момент не известен, но знаем кокой он должен получится в итоге. Делаем до тех пор пока не будет нужный цвет
if_not 480, 160 255 //пока не появился нужный цвет в точке 2
wait 100
left 480, 160 //куда нужно кликнуть в точке 2 что бы получить нужный цвет
end_if
// и т.д.
end_while
end_script
wait 2000
get mouse_pos #x0 #y0 // позиция до клика
kleft 3815, 560 abs // клик
move #x0 #y0 // возврат
wait 8m
set #d findcolor (3815, 560 3815, 562 1 1 (3798088-4387912) %arr 2 -1 3 abs)
while #d > 0
set #d findcolor (3815, 560 3815, 562 1 1 (3798088-4387912) %arr 2 -1 3 abs)
wait 10000
if #d = 0
//тут действие
end_if
end_while
set delimiter ' '
init_arr %color 12642802 12642802 12642802 // цвет в точке 1, цвет в точке 2 ...
init_arr %x 550 560 580 // координата X в т1, координата X в т2
init_arr %y 180 180 180 // координата Y в т1, координата Y в т2
set #proverka 0 // cчетчик проверки цвтов во всех точках
while 1 = 1 // зациклили выполнение кода, до тех пор покам нужно
for #i 1 size(%color) // перебираем массив(наши точки а данном случае по размеру цвета)
log %x[#i], %y[#i] %color[#i] // показать лог Точки в формате X Y Color
if %x[#i], %y[#i] %color[#i] // Если есть цвет в точке..выполнить действие
move %x[#i] %y[#i] // навести мышку на точку(выполнить действие)
set #proverka 0 // а также делаем сброс счетчика т.к желаемый результат не достигнут
else // если нет цвета в точке
set #proverka #proverka + 1 // цвет отсутствует прибавили к счетчику +1
log #proverka // отоброзили в лог состояния счетчика
end_if // конец условия
if #proverka >= 3 // если в 3 точках отсутствует цвет, то...
break // выйти из цикла for
end_if
end_for
if #proverka >= 3 // если в 3 точках отсутствует цвет, то...
break // выйти из цикла while
end_if
end_while
end_script
//УПРАВЛЕНИЕ СКРИПТОМ
if KB.GetKeyStateByCode(83) = 1 // S - пауза
wait 1s
while_not KB.GetKeyStateByCode(83) = 1 // S -- отпустить паузу
wait 100
end_while
end_if
if KB.GetKeyStateByCode(69) = 1 // E - выключить скрипт
end_script
end_if
//УПРАВЛЕНИЕ СКРИПТОМ
if KB.GetKeyStateByCode(83) = 1 // S - пауза
wait 1s
while_not KB.GetKeyStateByCode(83) = 1 // S -- отпустить паузу
wait 100
end_while
end_if
if KB.GetKeyStateByCode(69) = 1 // E - выключить скрипт
end_script
end_if
set delimiter ' '
init_arr %color 12642802 12642802 12642802 // цвет в точке 1, цвет в точке 2 ...
init_arr %x 550 560 580 // координата X в т1, координата X в т2
init_arr %y 180 180 180 // координата Y в т1, координата Y в т2
set #proverka 0 // cчетчик проверки цвтов во всех точках
while 1 = 1 // зациклили выполнение кода, до тех пор покам нужно
for #i 1 size(%color) // перебираем массив(наши точки а данном случае по размеру цвета)
log %x[#i], %y[#i] %color[#i] // показать лог Точки в формате X Y Color
if %x[#i], %y[#i] %color[#i] // Если есть цвет в точке..выполнить действие
move %x[#i] %y[#i] // навести мышку на точку(выполнить действие)
set #proverka 0 // а также делаем сброс счетчика т.к желаемый результат не достигнут
else // если нет цвета в точке
set #proverka #proverka + 1 // цвет отсутствует прибавили к счетчику +1
log #proverka // отоброзили в лог состояния счетчика
end_if // конец условия
if #proverka >= 3 // если в 3 точках отсутствует цвет, то...
break // выйти из цикла for
end_if
end_for
if #proverka >= 3 // если в 3 точках отсутствует цвет, то...
break // выйти из цикла while
end_if
end_while
end_script
set delimiter ' '
init_arr %color 12642802 12642802 12642802 // цвет в точке 1, цвет в точке 2 ...
init_arr %x 550 560 580 // координата X в т1, координата X в т2
init_arr %y 180 180 180 // координата Y в т1, координата Y в т2
init_arr %xx 111 222 333 // координаты кликов X
init_arr %yy 11 22 33 // координаты кликов Y
set #proverka 0 // cчетчик проверки цвтов во всех точках
while 1 = 1 // зациклили выполнение кода, до тех пор покам нужно
for #i 1 size(%color) // перебираем массив(наши точки а данном случае по размеру цвета)
log %x[#i], %y[#i] %color[#i] // показать лог Точки в формате X Y Color
if %x[#i], %y[#i] %color[#i] // Если есть цвет в точке..выполнить действие
move %xx[#i] %yy[#i] // навести мышку на точку(выполнить действие)
set #proverka 0 // а также делаем сброс счетчика т.к желаемый результат не достигнут
else // если нет цвета в точке
set #proverka #proverka + 1 // цвет отсутствует прибавили к счетчику +1
log #proverka // отоброзили в лог состояния счетчика
end_if // конец условия
if #proverka >= 3 // если в 3 точках отсутствует цвет, то...
break // выйти из цикла for
end_if
end_for
if #proverka >= 3 // если в 3 точках отсутствует цвет, то...
break // выйти из цикла while
end_if
end_while
end_script
set delimiter ' '
init_arr %a (1) "1, 2 3, 4" "5, 6 7, 8" "9, 10 11, 12" "13, 14 15, 16" "17, 18 19, 20" "21, 22 23, 24"
init_arr %b (1) "1 2" "3 4" "5 6" "7 8" "9 10" "11 12" // координаты для клика
while size(%a[1]) > 0
for #i 1 size(%a[1])
set $a %a[1 #i]
set #a findcolor ($a 1 1 (3798088-4387912) %arr 2 -1 3 workwindow)
if #a = 0
set $b %b[1 #i]
kleft $b
delete_array %a #i
delete_array %b #i
break
end_if
end_for
end_while
end_script
set delimiter ' '
init_arr %a (1) "1, 2 3, 4" "5, 6 7, 8" "9, 10 11, 12" "13, 14 15, 16" "17, 18 19, 20" "21, 22 23, 24"
init_arr %b (1) "1 2" "3 4" "5 6" "7 8" "9 10" "11 12" // координаты для клика
while size(%a[1]) > 0
for #i 1 size(%a[1])
set $a %a[1 #i]
set #a findcolor ($a 1 1 (3798088-4387912) %arr 2 -1 3 workwindow)
if #a = 0
set $b %b[1 #i]
kleft $b
delete_array %a #i
delete_array %b #i
break
end_if
end_for
end_while
end_script