Duat |
Отправлено: 07 Февраля, 2020 - 15:58:06
|
Наблюдатель
Покинул форум
Сообщений всего: 39
Дата рег-ции: Окт. 2018
Репутация: 0
|
Добрый день, товарищи.
Можно каким либо образом через кибор отправить команду эмулятору андроида (Memu) на запуск приложения? Что-то типо 'sendmessage' или 'postmessage' .
Ввиду того, что на экране 'телефона', в эмуляторе, может быть несколько страниц, и нужного приложения может не быть на активном экране, поиск по картинке не сработает).
И вторая ситуация с которой пытаюсь разобраться, но не получается:
У меня зацикленный скрипт. В ходе работы скрипта имеется переменная 'A', которая изначально имеет значение 'A=1', и с каждым новым проходом скрипта увеличивается на 1, вплоть до 100, затем все по новой.
В скрипте имеются также переменные B, C, D и т.д., Эти переменные принимают значения либо 1, либо 0.
но например:
Если A=1, то B=0, C=0, D=1.
Если A=2, то B=1, C=1, D=1.
Если A=3, то B=0, C=0, D=1.
Значения переменных B, C, D, E и т.д периодически (раз в пару недель) должны принимать разные значения (0 или 1).
Что можно придумать, чтобы значения переменных хранились где-то, а скрипт считывал эти значения, т.к все время переделывать скрипт дико бесит.
В идеале было бы, чтобы при прохождении скрипта, Kibor считывал значения переменных, которые пользователь внесёт в таблицу Excel.
Kibor пишет: |
|
|
Zireael |
Отправлено: 07 Февраля, 2020 - 17:03:09
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: отправить команду эмулятору андроида
В эмуляторах макросы бывают, может как-то через них.
Цитата: считывал значения переменных, которые пользователь внесёт в таблицу Excel.
Диалоговые окна есть для этого.
code (Отобразить)CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define ES_NUMBER 8192
external (INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external (INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
string path="C:\config.ini"; // путь к файлу для загрузки/сохранения настроек
// переменные
int edit[5], static[5];
string text_static[5]={"A", "B", "C", "D", "E"} // текст статика
int A[5]={0, 0, 0, 0, 0};
createdialog(0); // создать диалог
showdialog(0, "Диалог",100, 0, 300, 300, 4, 1); // показать диалог
loop()
{
// это можно убрать
textbkcolor(255, 65280);
textout(0, 0, 0, "A: "+format(A[0]), 1);
textout(1, 0, 20, "B: "+format(A[1]), 1);
textout(2, 0, 40, "C: "+format(A[2]), 1);
textout(3, 0, 60, "D: "+format(A[3]), 1);
textout(4, 0, 80, "E: "+format(A[4]), 1);
////////
// тут скрипт
sleep(100);
}
end:;
function getmessage(0, WM_CREATE)
{
for(int i=0; i<sizearray(edit); i++)
{
edit[i]=CreateWindow(0, "EDIT", "0", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER, 35, 8+25*i, 30, 20, gethwnd(0), 0, 0, 0);
static[i]=CreateWindow(0, "STATIC", text_static[i], WS_VISIBLE | WS_CHILD, 10, 10+25*i, 20, 20, gethwnd(0), 0, 0, 0);
}
if(fopen(path, "r")) // если файл настроек существует
{
fclose();
load_config(); // // вызов функции, котороая загрузит настройки из ini файла
}
}
function getmessage(0, WM_COMMAND)
{
char c[256];
for(int i=0; i<sizearray(edit); i++) // цикл
{
if(message.lparam == edit[i]) // если был изменён edit
{
GetWindowText(edit[i], address (#c[0]), sizearray(c)); // получить текст
A[i]=formatsn(format(#c[0])); // присвоить переменной
return;
}
}
}
function getmessage(0, WM_CLOSE)
{
save_config(); // вызов функции, котороая сохранить настройки в ini файл
goto global end; // выход из скрипта, можно заменить на close(); чтобы закрыть кибор
}
function load_config() // функция для загрузки настроек
{
char c[256];
for(int i=0; i<sizearray(edit); i++)
{
GetPrivateProfileString ("Default", text_static[i], 0, address (#c[0]), sizearray(c), path); // получить значение из ini
SetWindowText(edit[i], format(#c[0])); // установить текст в edit
}
}
function save_config() // функция для сохранения настроек
{
char c[256];
for(int i=0; i<sizearray(edit); i++)
{
GetWindowText(edit[i], address (#c[0]), sizearray(c)); // получить текст edit
WritePrivateProfileString ("Default", text_static[i], format(#c[0]), path); // записать значение в ini
}
} |
|
|
|