 |
|

20.02.2021, 18:35
|
|
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами:
6483143
Репутация:
93
|
|
Пытаюсь сделать окно, сквозь которое можно кликать.
Состав: imgui на opengl + прозрачное, безрамочное окно windows
Проблема в перенаправлении кликов; на примере рабочего стола, я могу кликнуть на ярлык и выделить его, но через раз окно /оверлея/ получает buttondown без buttonup (согласно spy++ прицепленному к моему окну) и левый клик залипает. При этом, физически он отпущен. Полагаю, я создал мешанину из сигналов, но весь день убил -- понять не могу, что делаю не так
Так же пробовал return 0 вместо обработки вообще любых сигналов, при курсоре не наведённом на имгуи окно (именно имгуи, а не его hwnd), но тогда клики просто не проходят (даже без залипания, просто теряется способность кликать насквозь)
Привязка окна, которое будет за imgui окном, осуществляется так:
C++:
Код:
if
(
ImGui
::
IsItemActive
(
)
)
{
lmb_ignore
=
true
;
hwnd_target
=
WindowFromPoint
(
cpos
)
;
GetWindowTextW
(
hwnd_target
,
temp_wchar
,
256
)
;
str
(
temp_wchar
,
256
,
tied_window_text
,
256
)
;
}
else
lmb_ignore
=
false
;
WndProc моего окна:
Сообщение от Спойлер
C++:
[CODE]
if
(
!
(
target_cursor
.
x
>=
overlayWindow
[
1
]
-
10
&&
target_cursor
.
x
=
overlayWindow
[
3
]
-
10
&&
target_cursor
.
y
|
|
|

20.02.2021, 18:35
|
|
Участник форума
Регистрация: 29.04.2017
Сообщений: 263
С нами:
4757761
Репутация:
213
|
|
Assembler // TASM
Вопрос такой: функция 2Ah возвращает дату.
Всё срабатывает, кроме года, возвращает 07E5 ибо dw т.к. db не пропускает. В чём может быть причина?
Код:
Код:
title Date (work.asm)
.model small
.stack 100h
.data
dayOfWeek db ?
day db ?
month db ?
year dw ? ; error if " year db ? "
.code
main proc
mov ax,@data
mov ds,ax
mov ah,2Ah
int 21h
mov year,cx ; *
mov month,dh
mov day,dl
mov dayOfWeek,al
; Завершаем
mov ax,4C00h
int 21h
main endp
end main
|
|
|

20.02.2021, 18:49
|
|
Познающий
Регистрация: 30.10.2020
Сообщений: 32
С нами:
2914352
Репутация:
8
|
|
Сообщение от BASS_DEVSOFTWARE
Почему месяц, день и день недели в десятичном формате, а год в таком?
dayOfWeek db ?
day db ?
month db ?
year dw ? ; *
|
|
|

20.02.2021, 18:51
|
|
Участник форума
Регистрация: 29.04.2017
Сообщений: 263
С нами:
4757761
Репутация:
213
|
|
Сообщение от Gunborg Johansson
dayOfWeek db ?
day db ?
month db ?
year dw ? ; *
Screenshot_7.pngBASS_DEVSOFTWARE · 20 Фев 2021 в 17:51' data-fancybox="lb-post-674758" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/87001/" style="cursor: pointer;" title="Screenshot_7.png">

|
|
|

20.02.2021, 18:54
|
|
Познающий
Регистрация: 30.10.2020
Сообщений: 32
С нами:
2914352
Репутация:
8
|
|
Сообщение от BASS_DEVSOFTWARE
db is a byte, dw is a dword. I don't know why the bytes in your code return a value in decimal, it's strange
|
|
|

20.02.2021, 19:31
|
|
Участник форума
Регистрация: 29.04.2017
Сообщений: 263
С нами:
4757761
Репутация:
213
|
|
Неверный тип операнда показывает. Да, 4 символа не влезают в db, но и другие директивы не пропускает же.
|
|
|

24.02.2021, 17:50
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от T4yz1e
Здравствуйте.....можно ли найти сигнатуру которую оставляет модуль в процессе (длл аимчик), если в нем нет никакого текста...Перебирать все подряд?
попробуй эти байты:

|
|
|

24.02.2021, 18:38
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от BASS_DEVSOFTWARE
Неверный тип операнда показывает. Да, 4 символа не влезают в db, но и другие директивы не пропускает же.
У тебя year 1 байт, а cx 2 байта. Попробуй использовать cl
|
|
|

02.03.2021, 22:37
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Может есть у кого-нибудь адрес RakPeer::Send для 0.3.7-R1? Можете дать?
|
|
|

03.03.2021, 08:48
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от AdCKuY_DpO4uLa
Может есть у кого-нибудь адрес RakPeer::Send для 0.3.7-R1? Можете дать?
CRakPeer::Send(BitStream, ...) - 0x307F0
CRakPeer::Send2(char* data...) - 0x307A0
Это перегруженная функция, поэтому 2 адреса. Можешь вызывать какой тебе удобно.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|