Gunta писал(а):
Также можно защитить свое приложение от снятия скриншота.Пример использования
Add(InlineCode,10717141,231,182)
{
WorkPoints=#16:doTakeScreenshot|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|32:uses kol, Share, Debug, Windows;|0:|4:type|28: THiAsmClass = class(TDebug)|9: public|63: procedure doTakeScreenshot(var _Data: TData; Index: word);|5: end;|0:|14:implementation|0:|70:procedure THiAsmClass.doTakeScreenshot(var _Data: TData; Index: word);|5:begin|30:keybd_event(VK_LWIN, 0, 0, 0);|41:keybd_event(VK_SHIFT, 0, 0, 0); |31:keybd_event(Ord('S'), 0, 0, 0);|45:keybd_event(Ord('S'), 0, KEYEVENTF_KEYUP, 0);|48:keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); |45:keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0); |4:end;|0:|4:end.|
}
Add(Button,5865202,175,182)
{
Left=50
Top=55
Width=120
Height=35
Caption="Сделать скриншот"
link(onClick,10717141:doTakeScreenshot,[])
}
Add(MainForm,2953706,175,238)
{
Point(Handle)
link(onCreate,4179180:doWork,[])
}
Add(InlineCode,4179180,231,252)
{
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,[(237,243)(216,243)(216,278)(181,278)])
}



Поиск
Друзья
Администрация