Прошу прощения если такие темы уже существуют, вопрос связан с процедурами.
В общем не работает команда:
set workwindow "переменная с хендлом"
call test
proc test
set #handleWin findWindow (Калькулятор)
set workwindow #handleWin
end_proc
end_script
call test
set workwindow $test
proc test
set #handleWin findWindow (Калькулятор)
set $result #handleWin
end_proc
end_script
Конечно это не моё дело, но ЗАЧЕМ нужен именно proc? Не проще использовать gosub? Будут доступны все переменные и вызов быстрее.
set #ww
set timer
for #i 1 100
call test
end_for
log timer
log #ww
set timer
for #i 1 100
gosub test2
end_for
log timer
log #ww
:test2
set #handleWin findWindow (Калькулятор)
set #ww #handleWin
return
proc test
set #handleWin findWindow (Калькулятор)
set #ww.9 #handleWin // у меня 9 вкладка скрипта, переделать под свою
end_proc
end_script
Ну а если принципиально нужен proc тогда нужно указывать ссылку на вкладку скрипта. Proc - это по сути вызов параллельного скрипта.
call test
send 2
proc test
set #handleWin findWindow (Калькулятор)
set workwindow.9 #handleWin // вкладка рабочего скрипта, у меня 9
end_proc
end_script
Кстати, в своё время пытался ускорить работу путём запуска нескольких параллельных скриптов, без ожидания завершения. Может конечно чего не то делал, но прироста производительности не обнаружил, на вскидку, Пилот не задействовал другие ядра проца.
Распределением задействования ядер занимается винда. Пилот запускает всё возможное в разных потоках, для того, чтоб у винды был богаче выбор. Но некоторые вещи небезопасно запускать в потоках, поэтому они выполняются в контексте основного потока последовательно.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)