Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: внутри...
ivantu
Отправлено: 27 Апреля, 2021 - 15:15:56
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Здравствуйте, подскажите можно ли убрать кнопки управления (свернуть закрыть и т.д), используя данный метод создания окна?

CODE:

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int b;

//////////
createdialog(0);
showdialog(0, "Диалог", 258, 234, 250, 300, 1, 1);
//////////

loop() sleep(10);//Убрать после теста



function getmessage(0, WM_CREATE)
{
b=CreateWindow(0, "BUTTON", "Первая кнопка", 1342177280, 10, 10, 120, 30, gethwnd(0), 0, 0, 0);
}


function getmessage(0, WM_COMMAND)
{
if (message.lparam==b)messagebox ("Первая кнопка");
}
 
 Top
Zireael
Отправлено: 28 Апреля, 2021 - 02:02:12
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
#define GWL_STYLE -16
#define WS_VISIBLE 0x10000000
#define WS_CAPTION 0x00C00000
#define WS_CHILD 0x40000000
#define WS_SYSMENU 0x00080000

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "SetWindowLong", "SetWindowLongA", "User32.dll");

int b;

createdialog(0);
showdialog(0, "Диалог", 258, 234, 250, 150, 1, 1);
SetWindowLong(gethwnd(0), GWL_STYLE, WS_VISIBLE + WS_CAPTION); // изменить стиль окна

loop()sleep(10);
end:;


function getmessage(0, WM_CREATE)
{
b=CreateWindow(0, "BUTTON", "Стоп скрипт", WS_VISIBLE + WS_CHILD, 40, 30, 100, 20, gethwnd(0), 0, 0, 0);
}

function getmessage(0, WM_COMMAND)
{
if (message.lparam==b)
{
if (messageboxyn("Остановить скрипт?")==1)goto global end;
else return;
}
}
 
 Top
ivantu
Отправлено: 28 Апреля, 2021 - 08:11:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




 Zireael пишет:
SetWindowLong(gethwnd(0), GWL_STYLE, WS_VISIBLE + WS_CAPTION); // изменить стиль окна


Прописывал это, но забыл при этом указать external , спасибо.
(Добавление)
Пытаюсь еще рамку полностью убрать, что только не перепробовал... все равно рамка не убирается....

CODE:

#define GWL_STYLE -16
#define WS_POPUP 0x80000000
#define BS_NOBORDER 65536

#define WS_EX_LAYERED 0x80000
#define LWA_COLORKEY 1
#define LWA_ALPHA 2

#define WS_OVERLAPPED 0x00000000
#define WS_EX_DLGMODALFRAME 0x00000001
#define WS_EX_CLIENTEDGE 0x00000200
#define WS_EX_STATICEDGE 0x00020000

#define WS_SIZEBOX 0x00040000

#define WS_CAPTION 0x00C00000


(Добавление)
Я так понял это из за того что у меня x64 битная система...

 Цитата:

ПРИМЕЧАНИЕ.. Если вы попробуете мой ответ, но это не сработает для вас, это может быть так, потому что обе функции SetWindowLong и GetWindowLong были заменены и не работа для вас, и это потому, что они совместимы с только 32-разрядной версией Windows. Вероятно, вы используете 64-разрядную версию Windows, затем вместо этого используйте SetWindowLongPtr и GetWindowLongPtr, которые совместимы с и 32-разрядными и 64- бит. MSDN сообщает об этих функциях в разделе Примечание. Просто найдите их на этом сайте. Вот ссылки на них:


я так понял нужно через SetWindowLongPtr
 
 Top
Zireael
Отправлено: 28 Апреля, 2021 - 11:01:58
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Пытаюсь еще рамку полностью убрать

Если имеется ввиду заголовок, то убрать WS_CAPTION.
 
 Top
ivantu
Отправлено: 28 Апреля, 2021 - 11:06:11
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




 Zireael пишет:
Если имеется ввиду заголовок, то убрать WS_CAPTION.

Это понятно, я именно про рамку у окна, я вывел на него картинку, и хотел убрать рамку, но не получается.

 
 Top
Zireael
Отправлено: 28 Апреля, 2021 - 12:00:22
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
#define WS_VISIBLE 0x10000000
#define WS_EX_TOPMOST 0x00000008
#define IDC_SIZEALL 32646
#define IDC_ARROW 32512
#define WM_CLOSE 0x0010
#define WS_POPUP 0x80000000
#define WS_EX_LAYERED 0x00080000
#define LWA_ALPHA 2
#define HTCAPTION 2

external(INT, "RegisterClass", "RegisterClassA", "User32.dll");
external(INT, "UnregisterClass", "UnregisterClassA", "User32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "LoadCursor", "LoadCursorA", "User32.dll");
external(INT, "SetCursor", "SetCursor", "User32.dll");
external(INT, "GetModuleHandle", "GetModuleHandleA", "Kernel32.dll");
external(INT, "SetLayeredWindowAttributes", "SetLayeredWindowAttributes", "User32.dll");
external(INT, "SetWindowLong", "SetWindowLongA", "User32.dll");


int WinProc=address("WindowProc");
char Class[99];
strcpy(#Class[0], "myclass");

int PWNDCLASS[10];//Структура WNDCLASS
int CLASS=address(#PWNDCLASS[0]);//Указатель на название класса
initialarray(#PWNDCLASS[0], 0);//Обнуляем структуру
PWNDCLASS[1] = WinProc;
PWNDCLASS[6] = LoadCursor(0, IDC_ARROW);
PWNDCLASS[9] = address(#Class[0]); // имя класса окна

int cursor_size_all = LoadCursor(0, IDC_SIZEALL);

if (RegisterClass(CLASS)==0){messagebox("Не удалось зарегистрировать класс"); goto er;}

int Win=CreateWindow(WS_EX_TOPMOST | WS_EX_LAYERED , address(#Class[0]), "", WS_POPUP | WS_VISIBLE, 200, 100, 400, 300, 0, 0, 0, 0);
SetLayeredWindowAttributes(Win, 0, 255, LWA_ALPHA); // уровень прозрачности от 0 до 255

win w = window ("Program Manager", "Progman", -1);
visualwindow(formatiw(Win), 0, 0, 0, 400, 300, 0, 0 , 100, w);

while(getkeystate(90)==0) // пока не нажата клавиша Z
{
textout(0, 0, 0, "Нажать Z чтобы остановить скрипт", 1);
sleep(1);
}
disablevisualwindow(0);


sendmessage(WM_CLOSE, 0, 0, formatiw(Win));
UnregisterClass(address(#Class[0]), 0);
er:;


function getmessage (WM_LBUTTONDOWN)
{
SetCursor(cursor_size_all);
sendmessage(WM_NCLBUTTONDOWN, HTCAPTION, 0, formatiw(Win)); // перетаскивание окна за клиентскую часть
}
 
 Top
ivantu
Отправлено: 28 Апреля, 2021 - 13:04:55
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Остановлюсь на варианте с рамкой, Классы и т.д сложновато для меня еще, но все же спасибо за помощь.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by