вобщем адаптировал я бота под работу с экселевской таблицей и все работает:
ctrl(#c)
if($art="w")
print("wait 10 sec")
wait(10)
end_if
$art=fromclip()
IF(STRPOS($art, "-") > 0)
$art = STRCUT2 ($art, 1, STRPOS($art, "-")-1)
ELSE
IF(STRPOS($art, ".") > 0)
$art = STRCUT2 ($art, 1, STRPOS($art, ".")-1)
END_IF
END_IF
keypress(#right)
ctrl(#c)
$name=strconcat(" ",fromclip())
STRSEPARATE($name, " ", $arr)
FOR($a=1,$a<ARRSIZE($arr))
$name = STRFILTER($arr[$a], "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 1)
IF(STRLEN($name) > 1)
$a=99999
END_IF
END_CYC
keypress(#left)
print("art = ",$art," name = ",$name)
undefine($arr)
if(strlen($name)>1)
$n=0
ctrl(#2)
waitms(222)
getscreen
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "art.bmp")
lclick(360,320)
ctrl(#a)
keypress(#delete)
toclip($name)
ctrl(#v)
keypress(#tab)
ctrl(#a)
keypress(#delete)
toclip($art)
ctrl(#v)
keypress(#enter)
wait(1)
else
LCLICK(385,13) // 3622107
ctrl(#t)
toclip("index.php?route=catalog/product")
ctrl(#v)
keypress(#enter)
wait(5)
getscreen
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "enter.bmp")
lclick($_return1,$_return2)
wait(5)
ctrl(#1)
else
LCLICK(380,13) // 3622107
end_if
goto(begin)
end_if
$f=1
waitms(500)
while($f)
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "motologo.bmp")
$f=0
else
waitms(500)
end_if
end_cyc
$f=0
$f1=0
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "checkbox.bmp")
$f=1
end_if
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "nasayte.bmp")
$f1=2
end_if
ctrl(#1)
if($f=1)
ctrl(#b)
end_if
if($f1=1)
ctrl(#i)
end_if
keypress(#down)
end_if
один баг пока нашел - если имя начинается с английского слова (которое как раз и нужно, артикула и русских букв в названии нет) - оно игнорируется, я так понял нужно делать проверку на наличие артикула в имени и если нужно удалять его, а затем искать английякое имя с первого члена массива?