Вверх ↑
Ответов: 1128
Рейтинг: 224
#1: 2026-07-20 16:04:58 ЛС | профиль | цитата
Увидел сообщение нашего коллеги http://hiasm.bbtalk.me/viewtopic.php?id=371
Сделал свой вариант.
Add(MainForm,6831122,364,112)
{
Point(Handle)
}
Add(Button,8001706,259,168)
{
Left=15
Top=40
Width=125
Height=25
Font=[MS Sans Serif,10,0,0,1]
Caption="Mirroring title ON"
Point(doCaption)
link(onClick,4079365:doSwitch,[])
}
Add(InlineCode,4502086,364,175)
{
WorkPoints=#19:doFlipWindowTitleOn|20:doFlipWindowTitleOff|
DataPoints=#6:Handle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Debug,Windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|22: Handle : THI_Event;|63: Procedure doFlipWindowTitleOn (var _Data:TData; Index:word);|64: Procedure doFlipWindowTitleOff (var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|73:Procedure THiAsmClass.doFlipWindowTitleOn (var _Data:TData; Index:word);|5:Begin|128: SetWindowLong(ReadInteger(_Data,Handle,0), GWL_EXSTYLE, GetWindowLong(ReadInteger(_Data,Handle,0), GWL_EXSTYLE) or $00403000);|4:end;|0:|77: Procedure THiAsmClass.doFlipWindowTitleOff (var _Data:TData; Index:word);|5:Begin|133: SetWindowLong(ReadInteger(_Data,Handle,0), GWL_EXSTYLE, GetWindowLong(ReadInteger(_Data,Handle,0), GWL_EXSTYLE) and not $00403000);|4:end;|0:|0:|4:end.|
link(Handle,6831122:Handle,[])
}
Add(Switch,4079365,308,168)
{
DataOn=String(Mirroring title OFF)
DataOff=String(Mirroring title ON)
Point(onOn)
Point(onOff)
link(onSwitch,8001706:doCaption,[(347,174)(347,160)(249,160)(249,174)])
link(onOn,4502086:doFlipWindowTitleOn,[])
link(onOff,4502086:doFlipWindowTitleOff,[])
}


--- Добавлено в 2026-07-20 16:09:59

Также можно защитить свое приложение от снятия скриншота.

Add(MainForm,2953706,140,168)
{
Point(Handle)
link(onCreate,4179180:doWork,[])
}
Add(InlineCode,4179180,210,182)
{
WorkPoints=#6:doWork|
DataPoints=#4:hndl|
Code=#0:|15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Windows,Messages;|0:|5:const|23: WDA_NONE = $00000000;|26: WDA_MONITOR = $00000001;|37: WDA_EXCLUDEFROMCAPTURE = $00000011;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|17:hndl : THI_Event;|47:Procedure doWork (var _Data:TData; Index:word);|0:|5: end;|1: |136:function SetWindowDisplayAffinity(hWnd: HWND; dwAffinity: DWORD): BOOL; stdcall; external 'user32.dll' name 'SetWindowDisplayAffinity'; |0:|14:implementation|0:|60:Procedure THiAsmClass.doWork (var _Data:TData; Index:word);|5:Begin|68: //SetWindowDisplayAffinity(ReadInteger(_Data,hndl), WDA_MONITOR);|77: SetWindowDisplayAffinity(ReadInteger(_Data,hndl), WDA_EXCLUDEFROMCAPTURE);|4:end;|0:|4:end.|
link(hndl,2953706:Handle,[(216,173)(202,173)(202,208)(146,208)])
}

Можно использовать параметр WDA_MONITOR, тогда будет виден чёрный квадрат.
карма: 20

0
Редактировалось 2 раз(а), последний 2026-07-20 16:09:59