Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Справка по функциям

Страниц (9): « 1 2 [3] 4 5 6 7 8 9 »
 

21. Kibor - 19 Августа, 2020 - 04:01:44 - перейти к сообщению
Добавил прокрутку ролика мыши в mouse и sendmouse
Для прокрутки ролика мыши необходимо первым параметром указать WHEEL

Пример прокрутки в активном окне:

Прокручивает на 2 щелчка вверх
CODE:
mouse(WHEEL, 2);


Прокручивает на 2 щелчка вниз
CODE:
mouse(WHEEL, -2);


Так же само прокручивает в активном окне.
3 параметр указывает:
0 - не активировать окно с указателем в 4 параметре w
1 - перед прокруткой активировать окно с указателем в 4 параметре w
Указатель надо давать на главное окно, а не на контрол в котором есть скролл, так как активируется главное окно, а не контрол.
CODE:
mouse(WHEEL, 2, 1, w);


================================

Прокрутка в не активном окне:

В данном случае третьим параметром надо давать указатель на контрол в котором есть скролл, так как сообщение передается скролу, а не главному окну.
CODE:
sendmouse(WHEEL, -2, w);


=============================================


Пояснение по поводу указателей.
На примере блокнота.

Блокнот имеет главное окно и контрол EDIT , который расположен на главной форме и в котором есть сролл.

В шпионе Кибор вверху будет указатель на главную форму, внизу на контролл.

Для mouse надо давать указатель на главную форму. Для sendmouse на контролл.

CODE:
win w=window (-1, "Notepad", -1); // Указатель на главную фому
mouse(WHEEL, -2, 1, w);
pause(1000);


CODE:
win w=window (-1, "Edit", window (-1, "Notepad", -1)); // Указатель на контролл
sendmouse(WHEEL, -2, w);
pause(1000);
22. Flash - 26 Сентября, 2020 - 07:46:37 - перейти к сообщению
Доброго времени, можно ли в примере (k+n) вместо знака "+" поставить (любую) переменную например string znak="+"; ?

int k=1;
int n=2;
string znak="+";

if(k+n==3)messagebox(format(k+n));
23. Kibor - 26 Сентября, 2020 - 08:50:32 - перейти к сообщению
Нет.
Только условиями
CODE:
if (znak=="+")
{
if(k+n==3)messagebox(format(k+n));
}
if (znak=="-")
{
if(k-n==3)messagebox(format(k-n));
}
24. Flash - 26 Сентября, 2020 - 15:20:15 - перейти к сообщению
[quote=Kibor]Нет.
Это да, я уже понял. Получается что если надо решить 10 примеров (только на +) или вывести диалоговое окно в нужно месте (x/2-100) или (x/2+100) то тогда надо заготовить 20 примеров (на + и на -) и создавать 2 showdialog в зависимости от разных ситуаций.
25. Zireael - 26 Сентября, 2020 - 15:28:38 - перейти к сообщению
 Цитата:
Получается что если надо решить 10 примеров (только на +) или вывести диалоговое окно в нужно месте (x/2-100) или (x/2+100) то тогда надо заготовить 20 примеров (на + и на -)

Нет.
Будет проще если вы напишите что хотите сделать.
26. Flash - 26 Сентября, 2020 - 16:14:00 - перейти к сообщению
[quote=Zireael][quote]
Да я хотел прицел перемещать в зависимости о ситуации. И догадался)) можно же int в отрицательную величину отнимать.

int col, x, y;
getdisplay(col, x, y);

int color[1][1];
color[0][0]=255;

int razmer=1000;

int k=-300; // -300 по x


primer();
messagebox("точка с лево");


k=300;// +300 по x
disablevisualwindow(0);update(-1);
primer();
messagebox("точка с право");



function primer()
{
visualwindow(0, 0, 0, 1, 1, x/2+k, y/2, razmer, #color[0][0]);
}

а я там городил 2 функции primer() и на плюс и на минус. К томуже у меня несколько visualwindow
(Добавление)
Доброго времени, есть игра (шутер) но send(mouse/key) не работают это может быть связано с античитом? Ни в полном экране не работает ни в окне. Но с окном могу работать (переименовать сдвиг и т.д) а send(mouse/key) не работает.
27. konctantin777 - 16 Ноября, 2020 - 12:39:06 - перейти к сообщению
 Kibor пишет:
CODE:
key("qwert");//Жмем клавиши qwert


Как между нажатиями кнопки сделать паузу 50-150 ? keymouserand ведь только от нуля ? А если переменную (с текстом) вставить в визуальный, то печатает букву переменной...
28. Zireael - 16 Ноября, 2020 - 16:44:06 - перейти к сообщению
 Цитата:
Как между нажатиями кнопки сделать паузу 50-150 ?

CODE:
pause(3000); // пауза чтобы переключиться на окно, в котором напечатать текст
_key("qwert", 100); // текст, пауза

function _key(string text, int wait)
{
char c_text[999];
strcpy(#c_text[0], text);
int size_text = size(text);
for(int i=0; i<size_text; i++)
{
key(c_text[i]);
sleep(wait);
}
}
29. MaxarsP - 23 Ноября, 2020 - 03:36:56 - перейти к сообщению
Скажите пожалуйста , а что в неактивном окне sendmouse(WHEEL, -2, w); нет параметров указания в каком именно месте делать скролл? Получается только sendmousemove можно , по другому не как?
30. Zireael - 23 Ноября, 2020 - 04:31:57 - перейти к сообщению
 Цитата:
sendmouse(WHEEL, -2, w); нет параметров указания в каком именно месте делать скролл?

CODE:
external(INT, "ClientToScreen", "ClientToScreen", "User32.dll");


win w=window ("TheRender", "RenderWindow", window ("LDPlayer", "LDPlayerMainFrame", -1)); // окно
if(w) // если окно найдено
{
int x=500; // координата X
int y=400; // координата Y

mousewheel(w, x, y, -2); // на 2 щелчка вниз
sleep(2000);
mousewheel(w, x, y, 3); // на 3 щелчка верх
}
else messagebox("Окно не найдено");



function mousewheel(win w, int x, int y, int delta)
{
int Point[2];
Point[0] = x; Point[1] = y;
ClientToScreen (formatwi(w), address(#Point[0]));
sendmessage(WM_MOUSEWHEEL, delta*120*65536, Point[0]+Point[1]*65536, w);
}

Powered by ExBB FM 1.0 Final