Andrew |
Отправлено: 13 Августа, 2013 - 07:15:16
|
Участник
Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013
Откуда: Россия
Репутация: 9
|
Kibor , Извините, что пишу сюда, мою тему закрыли, а новую из-за пустяка заводить не хочется. У меня не работает расширенный вариаyт функции key.
Вот этот:
Цитата: key("Ввести русский и English текст переключая раскладку клавиатуры", 1, 1, win wind)
В моем скрипте:
CODE:int Image_0[18][15];loadimage (#Image_0[0][0], "C:\savescreen\menu.bmp");
int Image_1[7][4];loadimage (#Image_1[0][0], "C:\savescreen\strelka.bmp");
start("%windir%\system32\mspaint.exe");
sleep(500);
win w1=window ("Безымянный - Paint", "MSPaintApp", -1);
sleep(1000);
w1.widthclient = 450;
w1.heightclient = 520;
w1.leftclient = 20;
w1.topclient = 10;
moveclient(w1);
sleep(1000);
activate(w1);
sleep(1000);
//======================================
int PosX_0[512];int PosY_0[512];
findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 450, 146, -1);
mouse(LEFT, PosX_0[0]+2, PosY_0[0]+2);
key(DOWN); sleep(500);
key(DOWN); sleep(500);
key(RETURN); sleep(500);
//======================================
int PosX_1[1];int PosY_1[1];
a:if (findimage(1, #Image_1[0][0], 255, #PosX_1[0], #PosY_1[0], 0, 0, 667, 442, -1)<1)
{sleep(200); goto a;}
mouse(LEFT, PosX_1[0]+1, PosY_1[0]+1);
sleep(1000);
key("C:\savescreen\screen", 1, 1, 0);
sleep(1000);
key(RETURN); sleep(1000);
Вот материал к скрипту для проверки (Папку из архива перенести на диск С), помогите пожалуйста, все способы испробовал |
|
|
Kibor |
Отправлено: 13 Августа, 2013 - 13:53:10
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
ArtChemist правильно писал, указатель нужен для того что бы функция поняла с каким окном ей работать - проверять и переключать раскладку. Хотя если окно активно, то можно и 0.
Немного странно работает с этим контролом...
Пришлось реализовать так:
Отправляем первый символ "C" с проверкой раскладки, если надо Кибор меняет раскладку и печатает символ. Так как отправляется англ "C", то переключение идет на англ язык.
Потом отправляем ":". Для этого нажимаем комбинацию шифт+";"
Просто так ":" не отправится. Это так как будто просто нажали на ":" на клаве без шифта...
После уже пропечатаем сам адрес без проверки раскладки. Раскладка уже английская поскольку первый символ "С" пропечатан с проверкой раскладки и она уже переключилась.
Если в адресе будут русские символы - надо опять переключать по первому попавшему русскому символу...
Код изменений:
Вместо
CODE:key("C:\savescreen\screen", 1, 1, 0);
надо
CODE:win w2=window (-1, "Edit", 96, 9, -1, -1, window ("Открыть", "#32770", -1));//Указатель на поле ввода. Узнать после щелчка мыши
key("C", 0, 1, w2);
sleep(500);
keydown(SHIFT);key(":");keyup(SHIFT);
key("\savescreen\screen", 0, 0, 0); |
|
|
|