Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как проверить поверх всех окон программа или нет

Страниц (1): [1]
 

1. neba2101 - 02 Апреля, 2025 - 14:43:30 - перейти к сообщению
У меня есть несколько скриптов, которые могут работать одновременно. Они запускают друг друга через
CODE:
start("адрес");
Все эти скрипты имеют меню и в коде прописан примерно такой вызов меню.
CODE:
createdialog(0);
showdialog(0, "Name", 123, 123, 200, 100, 4, 1);

Но иногда меню вызывается не поверх всех окон.
Как проверить окно программы поверх всех окон или нет? И если нет присвоить это значение через WinApi например. Спасибо!
2. Zireael - 04 Апреля, 2025 - 03:50:58 - перейти к сообщению
 Цитата:
Как проверить окно программы поверх всех окон или нет?

GetWindowLong
CODE:
#define GWL_EXSTYLE -20
external(INT, "GetWindowLong", "GetWindowLongA", "User32.dll");
createdialog(0);
createdialog(1);

showdialog(0, "Name", 123, 123, 200, 100, 1, 0); // no topmost
showdialog(1, "Name", 623, 123, 200, 100, 1, 1); // topmost
int StyleEx0 = GetWindowLong(gethwnd(0), GWL_EXSTYLE);
int StyleEx1 = GetWindowLong(gethwnd(1), GWL_EXSTYLE);
sleep(500);

loop()
{
textout(0, 0, 0, format(StyleEx0), 0);
textout(1, 0, 20, format(StyleEx1), 0);
sleep(10);
}

 Цитата:
И если нет присвоить это значение через WinApi

SetWindowLong


Ещё есть баг.
CODE:
createdialog(0);
showdialog(0, "Name", 123, 123, 200, 100, 1, 0); // no topmost
sleep(5000);

messagebox("1111"); // после вызова созданное окно станет topmost
loop()sleep(10);

Powered by ExBB FM 1.0 Final