Мышка Delphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studio https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka.feed 2022-09-13T04:42:33+07:00 Delphi help info@delphi-hlp.ru Joomla! - Open Source Content Management Добавление события OnMouseLeave 2017-10-03T16:44:16+07:00 2017-10-03T16:44:16+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/dobavlenie-sobytiya-onmouseleave.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Все потомки TComponent могут посылать сообщения CM_MOUSEENTER и CM_MOUSELEAVE во время вхождения и покидания курсора мыши области компонента. Если вам необходимо, чтобы ваши компоненты обладали реакцией на эти события, необходио написать для них соответствующие обработчики.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/dobavlenie-sobytiya-onmouseleave.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Все потомки TComponent могут посылать сообщения CM_MOUSEENTER и CM_MOUSELEAVE во время вхождения и покидания курсора мыши области компонента. Если вам необходимо, чтобы ваши компоненты обладали реакцией на эти события, необходио написать для них соответствующие обработчики.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/dobavlenie-sobytiya-onmouseleave.html">Подробнее...</a></p> Имитировать события мыши 2017-10-02T21:33:35+07:00 2017-10-02T21:33:35+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/imitirovat-sobytiya-myshi.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">В этом примере курсор мыши сам встает на кнопку и нажимает на нее.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/imitirovat-sobytiya-myshi.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">В этом примере курсор мыши сам встает на кнопку и нажимает на нее.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/imitirovat-sobytiya-myshi.html">Подробнее...</a></p> Как автоматически помещать курсор мышки в центр контрола получившего фокус? 2017-10-02T21:32:13+07:00 2017-10-02T21:32:13+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-avtomaticheski-pomeshchat-kursor-myshki-v-tsentr-kontrola-poluchivshego-fokus.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Нам потребуется универсальная функция, которую можно будет применять для различных визуальных контролов.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Вот пример вызова нашей функции:</span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-avtomaticheski-pomeshchat-kursor-myshki-v-tsentr-kontrola-poluchivshego-fokus.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Нам потребуется универсальная функция, которую можно будет применять для различных визуальных контролов.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Вот пример вызова нашей функции:</span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-avtomaticheski-pomeshchat-kursor-myshki-v-tsentr-kontrola-poluchivshego-fokus.html">Подробнее...</a></p> Как заставить появиться окошко подсказки когда курсор мышки находится над определённым контролом? 2017-10-03T16:43:07+07:00 2017-10-03T16:43:07+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-zastavit-poyavitsya-okoshko-podskazki-kogda-kursor-myshki-nakhoditsya-nad-opredeljonnym-kontrolom.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> hintWnd: THintWindow; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.ActivateHintNOW( x,y: Integer); </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> rect: TRect; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> HintTxt := </span><span class="f_CodeExample" style="color: #ff0000;">'qq'</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> hintTxt &lt;&gt; </span><span class="f_CodeExample" style="color: #ff0000;">''</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    rect := hintWnd.CalcHintRect( Screen.Width, hinttxt, </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    rect.Left := rect.Left + x; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    rect.Right := rect.Right + x; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    rect.Top := rect.Top + y; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    rect.Bottom := rect.Bottom + y; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    hintWnd.ActivateHint( rect, hinttxt); </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Замечание: Не забудьте каждый раз создавать hintWnd:</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   hintwnd:= THintWindow.create(self); </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">а затем освобождать его</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="font-family: 'Courier New'; font-size: 12pt;"><span style="font-family: tahoma,arial,helvetica,sans-serif;">     hintwnd.releasehandle;</span> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> hintWnd: THintWindow; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.ActivateHintNOW( x,y: Integer); </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> rect: TRect; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> HintTxt := </span><span class="f_CodeExample" style="color: #ff0000;">'qq'</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> hintTxt &lt;&gt; </span><span class="f_CodeExample" style="color: #ff0000;">''</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    rect := hintWnd.CalcHintRect( Screen.Width, hinttxt, </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    rect.Left := rect.Left + x; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    rect.Right := rect.Right + x; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    rect.Top := rect.Top + y; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    rect.Bottom := rect.Bottom + y; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    hintWnd.ActivateHint( rect, hinttxt); </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Замечание: Не забудьте каждый раз создавать hintWnd:</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   hintwnd:= THintWindow.create(self); </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">а затем освобождать его</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="font-family: 'Courier New'; font-size: 12pt;"><span style="font-family: tahoma,arial,helvetica,sans-serif;">     hintwnd.releasehandle;</span> </span></p> Как имитировать нажатие левой кнопки мыши? 2017-10-02T21:29:11+07:00 2017-10-02T21:29:11+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-imitirovat-nazhatie-levoj-knopki-myshi.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">mouse_event(MOUSEEVENTF_LEFTDOWN,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Application.ProcessMessages;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">mouse_event(MOUSEEVENTF_LEFTUP,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">); </span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">mouse_event(MOUSEEVENTF_LEFTDOWN,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Application.ProcessMessages;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">mouse_event(MOUSEEVENTF_LEFTUP,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">); </span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Как использовать mouse_event() для эмулирования событий мышки? 2017-10-02T21:29:52+07:00 2017-10-02T21:29:52+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-ispolzovat-mouse-event-dlya-emulirovaniya-sobytij-myshki.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Следующий пример демонстрирует использование API функции mouse_event() для эмуляции событий мышки. Когда Button2 нажата, то мышь перемещается на Button1 и щёлкает по ней. Координаты мыши даны в "Mickeys", где 65535 соответствует ширине экрана.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-ispolzovat-mouse-event-dlya-emulirovaniya-sobytij-myshki.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Следующий пример демонстрирует использование API функции mouse_event() для эмуляции событий мышки. Когда Button2 нажата, то мышь перемещается на Button1 и щёлкает по ней. Координаты мыши даны в "Mickeys", где 65535 соответствует ширине экрана.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-ispolzovat-mouse-event-dlya-emulirovaniya-sobytij-myshki.html">Подробнее...</a></p> Как ограничить движения мышки определённой областью? 2017-10-03T02:38:27+07:00 2017-10-03T02:38:27+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-ogranichit-dvizheniya-myshki-opredeljonnoj-oblastyu.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для этого можно воспользоваться API функцией ClipCursor(). Например, можно вставить следующий код в обработчик события формы OnMouseDown:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">ClipCursor(&amp;BoundsRect); </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">а следующий код в обработчик события формы OnMouseUp:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">ClipCursor(NULL); </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-ogranichit-dvizheniya-myshki-opredeljonnoj-oblastyu.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для этого можно воспользоваться API функцией ClipCursor(). Например, можно вставить следующий код в обработчик события формы OnMouseDown:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">ClipCursor(&amp;BoundsRect); </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">а следующий код в обработчик события формы OnMouseUp:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">ClipCursor(NULL); </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-ogranichit-dvizheniya-myshki-opredeljonnoj-oblastyu.html">Подробнее...</a></p> Как определить координаты курсора мыши? 2017-10-02T21:20:09+07:00 2017-10-02T21:20:09+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-opredelit-koordinaty-kursora-myshi.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> <span style="color: #000000;">GetCursorPos() </span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Автор Spawn</span></span></p> <p style="text-align: left;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Обрабатывай событие OnMouseMove. Координаты курсора можно получить следующим путем:</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-opredelit-koordinaty-kursora-myshi.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> <span style="color: #000000;">GetCursorPos() </span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Автор Spawn</span></span></p> <p style="text-align: left;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Обрабатывай событие OnMouseMove. Координаты курсора можно получить следующим путем:</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-opredelit-koordinaty-kursora-myshi.html">Подробнее...</a></p> Как отследить выход мыши за пределы формы? 2017-10-02T21:21:44+07:00 2017-10-02T21:21:44+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-otsledit-vykhod-myshi-za-predely-formy.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Можно через события OnMouseEnter/OnMouseLeave:</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Затем считывать параметр FMouseInPos.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-otsledit-vykhod-myshi-za-predely-formy.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Можно через события OnMouseEnter/OnMouseLeave:</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Затем считывать параметр FMouseInPos.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-otsledit-vykhod-myshi-za-predely-formy.html">Подробнее...</a></p> Как получить координаты указателя мыши относительно формы в Delphi 2017-10-02T21:22:59+07:00 2017-10-02T21:22:59+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-poluchit-koordinaty-ukazatelya-myshi-otnositelno-formy-v-delphi.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Существует такой тип, как TMouse, который передаёт координаты мышки в любое время, так что помести в обработчик события нажатия мыши на форме его вызов. Подробнее смотри в хелпе.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Лучше говорить, что существует объект класса TMouse, на него ссылается глобальная переменная Mouse из модуля Controls... А то человек кинется создавать свой экземпляр...</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-poluchit-koordinaty-ukazatelya-myshi-otnositelno-formy-v-delphi.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Существует такой тип, как TMouse, который передаёт координаты мышки в любое время, так что помести в обработчик события нажатия мыши на форме его вызов. Подробнее смотри в хелпе.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Лучше говорить, что существует объект класса TMouse, на него ссылается глобальная переменная Mouse из модуля Controls... А то человек кинется создавать свой экземпляр...</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-poluchit-koordinaty-ukazatelya-myshi-otnositelno-formy-v-delphi.html">Подробнее...</a></p> Как поменять функции кнопок мышки? 2017-10-02T21:16:47+07:00 2017-10-02T21:16:47+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-pomenyat-funktsii-knopok-myshki.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">//--------- </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">SwapMouseButton(true); </span><span class="f_CodeExample" style="color: #000080;">// Поменять обратно - SwapMouseButton(false); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">//--------- </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">//--------- </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">SwapMouseButton(true); </span><span class="f_CodeExample" style="color: #000080;">// Поменять обратно - SwapMouseButton(false); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">//--------- </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Как послать нажатие кнопки мыши в окно? 2017-10-02T21:28:38+07:00 2017-10-02T21:28:38+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-poslat-nazhatie-knopki-myshi-v-okno.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Существуют функции winapi:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">WM_LBUTTONDOWN</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">WM_RBUTTONDOWN </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Если проверить точку нажатия мышки таким вот образом:</span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">...</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SetForegroundWindow(WindowUO);</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">mouse_event(MOUSEEVENTF_MOVE,<span style="color: #800000;">400</span>,<span style="color: #800000;">400</span>,<span style="color: #800000;">0</span>,<span style="color: #800000;">0</span>);</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">...</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">то получилось, что мышка перемещалась не в те координаты(относительно разрешения монитора (800 на 600)) которые я задумал(в не зависимости от местоположения мышки она перемещалась строго по одному направлению на одинаковое расстояние), причем я сделал еще один вариант - dx=100, dy=100, но тогда перемещение мышки произошло в другую сторону(в сторону x=0 y=0 монитора)!</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-poslat-nazhatie-knopki-myshi-v-okno.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Существуют функции winapi:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">WM_LBUTTONDOWN</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">WM_RBUTTONDOWN </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Если проверить точку нажатия мышки таким вот образом:</span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">...</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SetForegroundWindow(WindowUO);</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">mouse_event(MOUSEEVENTF_MOVE,<span style="color: #800000;">400</span>,<span style="color: #800000;">400</span>,<span style="color: #800000;">0</span>,<span style="color: #800000;">0</span>);</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">...</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">то получилось, что мышка перемещалась не в те координаты(относительно разрешения монитора (800 на 600)) которые я задумал(в не зависимости от местоположения мышки она перемещалась строго по одному направлению на одинаковое расстояние), причем я сделал еще один вариант - dx=100, dy=100, но тогда перемещение мышки произошло в другую сторону(в сторону x=0 y=0 монитора)!</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-poslat-nazhatie-knopki-myshi-v-okno.html">Подробнее...</a></p> Как программно двигать курсор мышки? 2017-10-02T21:31:28+07:00 2017-10-02T21:31:28+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-programmno-dvigat-kursor-myshki.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> <span style="color: #000000;">Следующий пример показывает, как "подтолкнуть мышку" без вмешательства пользователя.</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-programmno-dvigat-kursor-myshki.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> <span style="color: #000000;">Следующий пример показывает, как "подтолкнуть мышку" без вмешательства пользователя.</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-programmno-dvigat-kursor-myshki.html">Подробнее...</a></p> Как программно определить количество кнопок мышки 2017-10-02T21:16:10+07:00 2017-10-02T21:16:10+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-programmno-opredelit-kolichestvo-knopok-myshki.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// if the result is 0, no mouse is present </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetNumberOfMouseButtons: Integer;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Result := GetSysTemMetrics(SM_CMOUSEBUTTONS);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   ShowMessage(</span><span class="f_CodeExample" style="color: #ff0000;">'Your mouse has '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(GetNumberOfMouseButtons) + </span><span class="f_CodeExample" style="color: #ff0000;">' buttons.'</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// if the result is 0, no mouse is present </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetNumberOfMouseButtons: Integer;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Result := GetSysTemMetrics(SM_CMOUSEBUTTONS);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   ShowMessage(</span><span class="f_CodeExample" style="color: #ff0000;">'Your mouse has '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(GetNumberOfMouseButtons) + </span><span class="f_CodeExample" style="color: #ff0000;">' buttons.'</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Как прочитать и изменить doubleclick time? 2017-10-02T21:17:28+07:00 2017-10-02T21:17:28+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-prochitat-i-izmenit-doubleclick-time.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// Set example:</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// will reset after system start</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> SetDoubleClickTime(</span><span class="f_CodeExample" style="color: #800000;">1500</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// Get example:</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button2Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> ShowMessage(IntToStr(GetDoubleClickTime));</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// Set example:</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// will reset after system start</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> SetDoubleClickTime(</span><span class="f_CodeExample" style="color: #800000;">1500</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// Get example:</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button2Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> ShowMessage(IntToStr(GetDoubleClickTime));</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Как узнать есть ли у мыши колесико? 2017-10-02T21:15:13+07:00 2017-10-02T21:15:13+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-uznat-est-li-u-myshi-kolesiko.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Существует свойство "WheelPresent" глобального обьекта "mouse".</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Существует свойство "WheelPresent" глобального обьекта "mouse".</span></p> Как узнать, находится ли мышка на форме? 2017-10-02T21:20:49+07:00 2017-10-02T21:20:49+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-uznat-nakhoditsya-li-myshka-na-forme.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> <span style="color: #000000;">Для этого можно воспользоваться API функцией GetCapture().</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Пример: </span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-uznat-nakhoditsya-li-myshka-na-forme.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> <span style="color: #000000;">Для этого можно воспользоваться API функцией GetCapture().</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Пример: </span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-uznat-nakhoditsya-li-myshka-na-forme.html">Подробнее...</a></p> Как узнать, присутствует ли мышка? 2017-10-02T21:14:22+07:00 2017-10-02T21:14:22+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-uznat-prisutstvuet-li-myshka.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #008000; font-weight: bold;">function</span> MousePresent : Boolean; </span></p> <p><span style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p style="margin: 0px 0px 0px 13px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #008000; font-weight: bold;">if</span> GetSystemMetrics(SM_MOUSEPRESENT) &lt;&gt; <span style="color: #800000;">0</span> <span style="color: #008000; font-weight: bold;">then</span></span></p> <p style="margin: 0px 0px 0px 13px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Result := true </span></p> <p style="margin: 0px 0px 0px 13px;"><span style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">else</span></p> <p style="margin: 0px 0px 0px 13px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Result := false; </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #008000; font-weight: bold;">end</span>; </span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #008000; font-weight: bold;">function</span> MousePresent : Boolean; </span></p> <p><span style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p style="margin: 0px 0px 0px 13px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #008000; font-weight: bold;">if</span> GetSystemMetrics(SM_MOUSEPRESENT) &lt;&gt; <span style="color: #800000;">0</span> <span style="color: #008000; font-weight: bold;">then</span></span></p> <p style="margin: 0px 0px 0px 13px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Result := true </span></p> <p style="margin: 0px 0px 0px 13px;"><span style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">else</span></p> <p style="margin: 0px 0px 0px 13px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Result := false; </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #008000; font-weight: bold;">end</span>; </span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Ловить события мышки вне приложения 2017-10-03T16:45:31+07:00 2017-10-03T16:45:31+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/lovit-sobytiya-myshki-vne-prilozheniya.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">unit</span><span class="f_CodeExample" style="color: #000000;"> Unit1;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">interface</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">uses</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Dialogs, AppEvnts, StdCtrls;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">type</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   TForm1 = </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">class</span><span class="f_CodeExample" style="color: #000000;">(TForm)</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ApplicationEvents1: TApplicationEvents;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Button_StartJour: TButton;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Button_StopJour: TButton;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ListBox1: TListBox;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> ApplicationEvents1Message(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Msg: tagMSG;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Handled: Boolean);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> Button_StartJourClick(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> Button_StopJourClick(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> FormClose(Sender: TObject; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Action: TCloseAction);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">private</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">{ Private declarations }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     FHookStarted : Boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">public</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">{ Public declarations }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Form1: TForm1;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">implementation</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #0000ff;">{$R *.dfm}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   JHook: THandle;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// The JournalRecordProc hook procedure is an application-defined or library-defined callback </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// function used with the SetWindowsHookEx function. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// The function records messages the system removes from the system message queue. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// A JournalRecordProc hook procedure does not need to live in a dynamic-link library. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// A JournalRecordProc hook procedure can live in the application itself. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// WH_JOURNALPLAYBACK Hook Function </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">//Syntax </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// JournalPlaybackProc( </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// nCode: Integer;  {a hook code} </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// wParam: WPARAM;  {this parameter is not used} </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// lParam: LPARAM  {a pointer to a TEventMsg structure} </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// ): LRESULT;  {returns a wait time in clock ticks} </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> JournalProc(Code, wParam: Integer; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> EventStrut: TEventMsg): Integer; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">stdcall</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Char1: PChar;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   s: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{this is the JournalRecordProc}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Result := CallNextHookEx(JHook, Code, wParam, Longint(@EventStrut));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{the CallNextHookEX is not really needed for journal hook since it it not </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> really in a hook chain, but it's standard for a Hook}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Code &lt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Exit;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{you should cancel operation if you get HC_SYSMODALON}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Code = HC_SYSMODALON </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Exit;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Code = HC_ACTION </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">{ </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">    The lParam parameter contains a pointer to a TEventMsg </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">    structure containing information on </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">    the message removed from the system message queue. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">    }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     s := </span><span class="f_CodeExample" style="color: #ff0000;">''</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_LBUTTONUP </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Left Mouse UP at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_LBUTTONDOWN </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Left Mouse Down at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_RBUTTONDOWN </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Right Mouse Down at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_RBUTTONUP) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Right Mouse Up at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_MOUSEWHEEL) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Mouse Wheel at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_MOUSEMOVE) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Mouse Position at X:'</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y: '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> s &lt;&gt; </span><span class="f_CodeExample" style="color: #ff0000;">''</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        Form1.ListBox1.ItemIndex :=  Form1.ListBox1.Items.Add(s);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button_StartJourClick(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> FHookStarted </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ShowMessage(</span><span class="f_CodeExample" style="color: #ff0000;">'Mouse is already being Journaled, can not restart'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Exit;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   JHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, hInstance, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{SetWindowsHookEx starts the Hook}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> JHook &gt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     FHookStarted := True;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ShowMessage(</span><span class="f_CodeExample" style="color: #ff0000;">'No Journal Hook availible'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button_StopJourClick(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   FHookStarted := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   UnhookWindowsHookEx(JHook);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   JHook := </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.ApplicationEvents1Message(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Msg: tagMSG;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Handled: Boolean);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{the journal hook is automaticly camceled if the Task manager </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> (Ctrl-Alt-Del) or the Ctrl-Esc keys are pressed, you restart it </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> when the WM_CANCELJOURNAL is sent to the parent window, Application}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Handled := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (Msg.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_CANCELJOURNAL) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> FHookStarted </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     JHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.FormClose(Sender: TObject; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Action: TCloseAction);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{make sure you unhook it if the app closes}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> FHookStarted </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     UnhookWindowsHookEx(JHook);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">.</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">unit</span><span class="f_CodeExample" style="color: #000000;"> Unit1;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">interface</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">uses</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Dialogs, AppEvnts, StdCtrls;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">type</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   TForm1 = </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">class</span><span class="f_CodeExample" style="color: #000000;">(TForm)</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ApplicationEvents1: TApplicationEvents;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Button_StartJour: TButton;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Button_StopJour: TButton;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ListBox1: TListBox;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> ApplicationEvents1Message(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Msg: tagMSG;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Handled: Boolean);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> Button_StartJourClick(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> Button_StopJourClick(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> FormClose(Sender: TObject; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Action: TCloseAction);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">private</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">{ Private declarations }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     FHookStarted : Boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">public</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">{ Public declarations }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Form1: TForm1;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">implementation</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #0000ff;">{$R *.dfm}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   JHook: THandle;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// The JournalRecordProc hook procedure is an application-defined or library-defined callback </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// function used with the SetWindowsHookEx function. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// The function records messages the system removes from the system message queue. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// A JournalRecordProc hook procedure does not need to live in a dynamic-link library. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// A JournalRecordProc hook procedure can live in the application itself. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// WH_JOURNALPLAYBACK Hook Function </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">//Syntax </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// JournalPlaybackProc( </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// nCode: Integer;  {a hook code} </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// wParam: WPARAM;  {this parameter is not used} </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// lParam: LPARAM  {a pointer to a TEventMsg structure} </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// ): LRESULT;  {returns a wait time in clock ticks} </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> JournalProc(Code, wParam: Integer; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> EventStrut: TEventMsg): Integer; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">stdcall</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Char1: PChar;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   s: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{this is the JournalRecordProc}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Result := CallNextHookEx(JHook, Code, wParam, Longint(@EventStrut));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{the CallNextHookEX is not really needed for journal hook since it it not </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> really in a hook chain, but it's standard for a Hook}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Code &lt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Exit;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{you should cancel operation if you get HC_SYSMODALON}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Code = HC_SYSMODALON </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Exit;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Code = HC_ACTION </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">{ </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">    The lParam parameter contains a pointer to a TEventMsg </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">    structure containing information on </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">    the message removed from the system message queue. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">    }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     s := </span><span class="f_CodeExample" style="color: #ff0000;">''</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_LBUTTONUP </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Left Mouse UP at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_LBUTTONDOWN </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Left Mouse Down at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_RBUTTONDOWN </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Right Mouse Down at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_RBUTTONUP) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Right Mouse Up at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_MOUSEWHEEL) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Mouse Wheel at X pos '</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y pos '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (EventStrut.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_MOUSEMOVE) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       s := </span><span class="f_CodeExample" style="color: #ff0000;">'Mouse Position at X:'</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">         IntToStr(EventStrut.paramL) + </span><span class="f_CodeExample" style="color: #ff0000;">' and Y: '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(EventStrut.paramH);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> s &lt;&gt; </span><span class="f_CodeExample" style="color: #ff0000;">''</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        Form1.ListBox1.ItemIndex :=  Form1.ListBox1.Items.Add(s);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button_StartJourClick(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> FHookStarted </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ShowMessage(</span><span class="f_CodeExample" style="color: #ff0000;">'Mouse is already being Journaled, can not restart'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Exit;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   JHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, hInstance, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{SetWindowsHookEx starts the Hook}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> JHook &gt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     FHookStarted := True;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ShowMessage(</span><span class="f_CodeExample" style="color: #ff0000;">'No Journal Hook availible'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button_StopJourClick(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   FHookStarted := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   UnhookWindowsHookEx(JHook);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   JHook := </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.ApplicationEvents1Message(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Msg: tagMSG;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Handled: Boolean);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{the journal hook is automaticly camceled if the Task manager </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> (Ctrl-Alt-Del) or the Ctrl-Esc keys are pressed, you restart it </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> when the WM_CANCELJOURNAL is sent to the parent window, Application}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Handled := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (Msg.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">message</span><span class="f_CodeExample" style="color: #000000;"> = WM_CANCELJOURNAL) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> FHookStarted </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     JHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.FormClose(Sender: TObject; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Action: TCloseAction);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">{make sure you unhook it if the app closes}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> FHookStarted </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     UnhookWindowsHookEx(JHook);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">.</span></p> </td> </tr> </tbody> </table> </div> <p> </p> Отключить реакцию на события мыши 2017-10-03T17:02:03+07:00 2017-10-03T17:02:03+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/kak-otklyuchit-reaktsiyu-na-sobytiya-myshi.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.ApplicationEvents1Message(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Msg: tagMSG;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Handled: Boolean);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> Handled := (msg.wParam = vk_lButton) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">             (msg.wParam = vk_rButton) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">             (msg.wParam = vk_mButton);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.ApplicationEvents1Message(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Msg: tagMSG;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> Handled: Boolean);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> Handled := (msg.wParam = vk_lButton) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">             (msg.wParam = vk_rButton) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">             (msg.wParam = vk_mButton);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Отслеживать переход мышки на компонент и уход ее 2017-10-03T17:04:26+07:00 2017-10-03T17:04:26+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/otslezhivat-perekhod-myshki-na-komponent-i-ukhod-ee.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Следующий Unit -это визуальный компонент, унаследованный от TImage, который имеет  2 дополнительных события OnMouseEnter и OnMouseLeave.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/otslezhivat-perekhod-myshki-na-komponent-i-ukhod-ee.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Следующий Unit -это визуальный компонент, унаследованный от TImage, который имеет  2 дополнительных события OnMouseEnter и OnMouseLeave.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/otslezhivat-perekhod-myshki-na-komponent-i-ukhod-ee.html">Подробнее...</a></p> Перемещение контролов мышкой во время выполнения приложения? 2017-10-03T02:57:54+07:00 2017-10-03T02:57:54+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/peremeshchenie-kontrolov-myshkoj-vo-vremya-vypolneniya-prilozheniya.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для этого необходимо перехватить событие OnMouseDown, запомнив координаты x и y и захватить мышку. После этого можно будет отслеживать движение мышки при помощи события OnMouseMove, перемещая контрол пока срабатывает событие OnMouseUp. Затем надо поместить контрол на своё окончательное место и снять захват мышки.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Следующий пример показывает как мышкой двигать компонент TButton по форме.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/peremeshchenie-kontrolov-myshkoj-vo-vremya-vypolneniya-prilozheniya.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для этого необходимо перехватить событие OnMouseDown, запомнив координаты x и y и захватить мышку. После этого можно будет отслеживать движение мышки при помощи события OnMouseMove, перемещая контрол пока срабатывает событие OnMouseUp. Затем надо поместить контрол на своё окончательное место и снять захват мышки.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Следующий пример показывает как мышкой двигать компонент TButton по форме.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/peremeshchenie-kontrolov-myshkoj-vo-vremya-vypolneniya-prilozheniya.html">Подробнее...</a></p> Подсветка компонента во время перемещения над ним мыши 2017-10-03T17:05:09+07:00 2017-10-03T17:05:09+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/podsvetka-komponenta-vo-vremya-peremeshcheniya-nad-nim-myshi.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Вы должны обрабатывать сообщения CM_MOUSEENTER и CM_MOUSELEAVE примерно таким образом:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/podsvetka-komponenta-vo-vremya-peremeshcheniya-nad-nim-myshi.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Вы должны обрабатывать сообщения CM_MOUSEENTER и CM_MOUSELEAVE примерно таким образом:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/podsvetka-komponenta-vo-vremya-peremeshcheniya-nad-nim-myshi.html">Подробнее...</a></p> Получить Handle и имя класса окна под мышкой 2017-10-03T17:05:47+07:00 2017-10-03T17:05:47+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/poluchit-handle-i-imya-klassa-okna-pod-myshkoj.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">type</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> TForm1 = </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">class</span><span class="f_CodeExample" style="color: #000000;">(TForm) </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    Label1: TLabel; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    Label2: TLabel; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    Timer1: TTimer; </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> Timer1Timer(Sender: TObject); </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> FormCreate(Sender: TObject); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">private</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> ShowHwndAndClassName(CrPos: TPoint); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">public</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Form1: TForm1; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">implementation</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{$R *.DFM}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Timer1Timer(Sender: TObject); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> rPos: TPoint; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Boolean(GetCursorPos(rPos)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> ShowHwndAndClassName(rPos); </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.ShowHwndAndClassName(CrPos: TPoint); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> hWnd: THandle; </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> aName: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">array</span><span class="f_CodeExample" style="color: #000000;"> [</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">..</span><span class="f_CodeExample" style="color: #800000;">255</span><span class="f_CodeExample" style="color: #000000;">] </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">of</span><span class="f_CodeExample" style="color: #000000;"> Char; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> hWnd := WindowFromPoint(CrPos); </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> Label1.Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'Handle :  '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(hWnd); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Boolean(GetClassName(hWnd, aName, </span><span class="f_CodeExample" style="color: #800000;">256</span><span class="f_CodeExample" style="color: #000000;">)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    Label2.Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'ClassName :  '</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">(aName) </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">else</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    Label2.Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'ClassName :  not found'</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.FormCreate(Sender: TObject); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Form1.FormStyle := fsStayOnTop; </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> Timer1.Interval := </span><span class="f_CodeExample" style="color: #800000;">50</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">type</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> TForm1 = </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">class</span><span class="f_CodeExample" style="color: #000000;">(TForm) </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    Label1: TLabel; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    Label2: TLabel; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    Timer1: TTimer; </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> Timer1Timer(Sender: TObject); </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> FormCreate(Sender: TObject); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">private</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> ShowHwndAndClassName(CrPos: TPoint); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">public</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Form1: TForm1; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">implementation</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{$R *.DFM}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Timer1Timer(Sender: TObject); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> rPos: TPoint; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Boolean(GetCursorPos(rPos)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> ShowHwndAndClassName(rPos); </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.ShowHwndAndClassName(CrPos: TPoint); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> hWnd: THandle; </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> aName: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">array</span><span class="f_CodeExample" style="color: #000000;"> [</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">..</span><span class="f_CodeExample" style="color: #800000;">255</span><span class="f_CodeExample" style="color: #000000;">] </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">of</span><span class="f_CodeExample" style="color: #000000;"> Char; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> hWnd := WindowFromPoint(CrPos); </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> Label1.Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'Handle :  '</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(hWnd); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Boolean(GetClassName(hWnd, aName, </span><span class="f_CodeExample" style="color: #800000;">256</span><span class="f_CodeExample" style="color: #000000;">)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    Label2.Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'ClassName :  '</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">(aName) </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">else</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    Label2.Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'ClassName :  not found'</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.FormCreate(Sender: TObject); </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Form1.FormStyle := fsStayOnTop; </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> Timer1.Interval := </span><span class="f_CodeExample" style="color: #800000;">50</span><span class="f_CodeExample" style="color: #000000;">; </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Получить дескриптор текущего курсора 2017-10-03T17:08:43+07:00 2017-10-03T17:08:43+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/poluchit-deskriptor-tekushchego-kursora.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">В GetCursor() API есть ограничение в том, что этого нет по умолчанию, возвращение дескриптора текущего  курсор, когда курсор принадлежит другому потоку. В данной статье демонстрируется способ извлечения</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> текущее курсора независимо от того, какой поток принадлежит.  Например, если вы хотите включить изображение курсора в захват экрана.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/poluchit-deskriptor-tekushchego-kursora.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">В GetCursor() API есть ограничение в том, что этого нет по умолчанию, возвращение дескриптора текущего  курсор, когда курсор принадлежит другому потоку. В данной статье демонстрируется способ извлечения</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> текущее курсора независимо от того, какой поток принадлежит.  Например, если вы хотите включить изображение курсора в захват экрана.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/poluchit-deskriptor-tekushchego-kursora.html">Подробнее...</a></p> Получить диапазон, прокручиваемый колесиком мышки 2017-10-03T17:09:16+07:00 2017-10-03T17:09:16+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/poluchit-diapazon-prokruchivaemyj-kolesikom-myshki.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">//Not supported on Windows 95 </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">//result = -1: scroll whole page </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetNumScrollLines: Integer;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   SystemParametersInfo(SPI_GETWHEELSCROLLLINES, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, @Result, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   ShowMessage(IntToStr(GetNumScrollLines));</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">//Not supported on Windows 95 </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">//result = -1: scroll whole page </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetNumScrollLines: Integer;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   SystemParametersInfo(SPI_GETWHEELSCROLLLINES, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, @Result, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   ShowMessage(IntToStr(GetNumScrollLines));</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Получить заголовок элемента управления под мышкой 2017-10-03T17:09:50+07:00 2017-10-03T17:09:50+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/poluchit-zagolovok-elementa-upravleniya-pod-myshkoj.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetCaptionAtPoint(CrPos: TPoint): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   textlength: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Text: PChar;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Handle: HWND;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Empty'</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Handle := WindowFromPoint(CrPos);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Handle = </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Exit;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   textlength := SendMessage(Handle, WM_GETTEXTLENGTH, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> textlength &lt;&gt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     getmem(Text, textlength + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     SendMessage(Handle, WM_GETTEXT, textlength + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, Integer(Text));</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">     Result := Text;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">     freemem(Text);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetCaptionAtPoint(CrPos: TPoint): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   textlength: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Text: PChar;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Handle: HWND;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Empty'</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Handle := WindowFromPoint(CrPos);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Handle = </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Exit;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   textlength := SendMessage(Handle, WM_GETTEXTLENGTH, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> textlength &lt;&gt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     getmem(Text, textlength + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     SendMessage(Handle, WM_GETTEXT, textlength + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, Integer(Text));</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">     Result := Text;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">     freemem(Text);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Проверить, находится ли курсор на линии 2017-10-03T17:10:27+07:00 2017-10-03T17:10:27+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/proverit-nakhoditsya-li-kursor-na-linii.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p style="margin: 7px 0px; text-align: justify;"> </p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{ </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Check if a Point(X,Y) (e.g a Cursor) is on a Linie (x1,y1) ; (x2,y2) </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> d = line width (min. 1) </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> CursorOnLinie(X, Y, x1, y1, x2, y2, d: Integer): Boolean;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   sine, cosinus: Double;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   dx, dy, len: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> d = </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> d := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">asm</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">     fild(y2)</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     fisub(y1) </span><span class="f_CodeExample" style="color: #000080;">// Y-Difference </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    fild(x2)</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     fisub(x1) </span><span class="f_CodeExample" style="color: #000080;">// X-Difference </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    fpatan    </span><span class="f_CodeExample" style="color: #000080;">// Angle of the line in st(0) </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    fsincos   </span><span class="f_CodeExample" style="color: #000080;">// Cosinus in st(0), Sinus in st(1) </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    fstp cosinus</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">     fstp sine</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   dx  := Round(cosinus * (x - x1) + sine * (y - y1));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   dy  := Round(cosinus * (y - y1) - sine * (x - x1));</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   len := Round(cosinus * (x2 - x1) + sine * (y2 - y1)); </span><span class="f_CodeExample" style="color: #000080;">// length of line </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (dy &gt; -d) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> (dy &lt; d) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> (dx &gt; -d) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> (dx &lt; len + d) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Result := True</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      Result := False;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.FormPaint(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   Canvas.Pen.Width := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   Canvas.MoveTo(</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Canvas.LineTo(Width, Weight);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Y: Integer);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   p: TPoint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   GetCursorPos(p);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   p := ScreenToClient(p);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> CursorOnLinie(p.x, p.y, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, Width, Height, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'Mouse on line.'</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'Mouse not on line.'</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p style="margin: 7px 0px; text-align: justify;"> </p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{ </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Check if a Point(X,Y) (e.g a Cursor) is on a Linie (x1,y1) ; (x2,y2) </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> d = line width (min. 1) </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> CursorOnLinie(X, Y, x1, y1, x2, y2, d: Integer): Boolean;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   sine, cosinus: Double;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   dx, dy, len: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> d = </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> d := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">asm</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">     fild(y2)</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     fisub(y1) </span><span class="f_CodeExample" style="color: #000080;">// Y-Difference </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    fild(x2)</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     fisub(x1) </span><span class="f_CodeExample" style="color: #000080;">// X-Difference </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    fpatan    </span><span class="f_CodeExample" style="color: #000080;">// Angle of the line in st(0) </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    fsincos   </span><span class="f_CodeExample" style="color: #000080;">// Cosinus in st(0), Sinus in st(1) </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    fstp cosinus</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">     fstp sine</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   dx  := Round(cosinus * (x - x1) + sine * (y - y1));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   dy  := Round(cosinus * (y - y1) - sine * (x - x1));</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   len := Round(cosinus * (x2 - x1) + sine * (y2 - y1)); </span><span class="f_CodeExample" style="color: #000080;">// length of line </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (dy &gt; -d) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> (dy &lt; d) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> (dx &gt; -d) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> (dx &lt; len + d) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Result := True</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      Result := False;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.FormPaint(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   Canvas.Pen.Width := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   Canvas.MoveTo(</span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Canvas.LineTo(Width, Weight);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Y: Integer);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   p: TPoint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   GetCursorPos(p);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   p := ScreenToClient(p);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> CursorOnLinie(p.x, p.y, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, Width, Height, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'Mouse on line.'</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     Caption := </span><span class="f_CodeExample" style="color: #ff0000;">'Mouse not on line.'</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Создание мышиного перехватчика 2017-10-03T17:12:39+07:00 2017-10-03T17:12:39+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/sozdanie-myshinogo-perekhvatchika.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">library</span><span class="f_CodeExample" style="color: #000000;"> Hookdemo;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">uses</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> </span><span class="f_CodeExample" style="color: #000000;">Beeper </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span> <span class="f_CodeExample" style="color: #ff0000;">'\DELDEMOS\HOOKDEMO\BEEPER.PAS'</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">exports</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">SetHook </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">index</span> <span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">,</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">UnHookHook </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">index</span> <span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">,</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">HookProc </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">index</span> <span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> </span><span class="f_CodeExample" style="color: #000000;">HookedAlready:=False;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">.</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/sozdanie-myshinogo-perekhvatchika.html">Подробнее...</a></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">library</span><span class="f_CodeExample" style="color: #000000;"> Hookdemo;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">uses</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> </span><span class="f_CodeExample" style="color: #000000;">Beeper </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span> <span class="f_CodeExample" style="color: #ff0000;">'\DELDEMOS\HOOKDEMO\BEEPER.PAS'</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">exports</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">SetHook </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">index</span> <span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">,</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">UnHookHook </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">index</span> <span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">,</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">HookProc </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">index</span> <span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> </span><span class="f_CodeExample" style="color: #000000;">HookedAlready:=False;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">.</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/sozdanie-myshinogo-perekhvatchika.html">Подробнее...</a></p> функции для изменения и получения чуствительности мышки 2017-10-02T21:18:15+07:00 2017-10-02T21:18:15+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/funktsii-dlya-izmeneniya-i-polucheniya-chustvitelnosti-myshki.html Super User toto44@inbox.ru <p><span style="font-family: times new roman,times,serif; font-size: 12pt;"> </span><span style="font-family: times new roman,times,serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: times new roman,times,serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Function</span><span class="f_CodeExample" style="color: #000000;"> SetMouseSpeed ( NewSpeed : Integer ) : Boolean;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: times new roman,times,serif; font-size: 12pt;">{©Drkb v.3}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: times new roman,times,serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: times new roman,times,serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> Result := SystemParametersInfo(SPI_SETMOUSESPEED, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, Pointer(NewSpeed), SPIF_SENDCHANGE );</span></span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">End</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: times new roman,times,serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Function</span><span class="f_CodeExample" style="color: #000000;"> GetMouseSpeed : Integer;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: times new roman,times,serif; font-size: 12pt; font-weight: bold;">Var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: times new roman,times,serif; font-size: 12pt;"> Int : Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: times new roman,times,serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> SystemParametersInfo(SPI_GETMOUSESPEED, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, @Int, SPIF_SENDCHANGE );</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: times new roman,times,serif; font-size: 12pt;"> Result := Int;</span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">End</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: times new roman,times,serif; font-size: 12pt;"> </span></p> <p><span style="font-family: times new roman,times,serif; font-size: 12pt;"> </span><span style="font-family: times new roman,times,serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: times new roman,times,serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Function</span><span class="f_CodeExample" style="color: #000000;"> SetMouseSpeed ( NewSpeed : Integer ) : Boolean;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: times new roman,times,serif; font-size: 12pt;">{©Drkb v.3}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: times new roman,times,serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: times new roman,times,serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> Result := SystemParametersInfo(SPI_SETMOUSESPEED, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, Pointer(NewSpeed), SPIF_SENDCHANGE );</span></span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">End</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: times new roman,times,serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Function</span><span class="f_CodeExample" style="color: #000000;"> GetMouseSpeed : Integer;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: times new roman,times,serif; font-size: 12pt; font-weight: bold;">Var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: times new roman,times,serif; font-size: 12pt;"> Int : Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: times new roman,times,serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> SystemParametersInfo(SPI_GETMOUSESPEED, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, @Int, SPIF_SENDCHANGE );</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: times new roman,times,serif; font-size: 12pt;"> Result := Int;</span></p> <p class="p_CodeExample"><span style="font-family: times new roman,times,serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">End</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: times new roman,times,serif; font-size: 12pt;"> </span></p> Функции и процедуры управления мышью 2017-10-03T17:11:08+07:00 2017-10-03T17:11:08+07:00 https://delphi-hlp.ru/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/funktsii-i-protsedury-upravleniya-myshyu.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Функция </span><span style="color: #000000; font-weight: bold;">FindVCLWindow</span><span style="color: #000000;">( </span><span style="color: #000000; font-weight: bold;">const</span><span style="color: #000000;"> Pos: </span><span style="color: #000000; font-style: italic;">TPoint</span><span style="color: #000000;"> ): </span><span style="color: #000000; font-style: italic;">TWinControl</span><span style="color: #000000;">;</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Функция возвращает оконное средство управления для местоположения, определенного параметром Pos. Если для данного местоположения нет оконных средств управления, то функция возвращает </span><span style="color: #000000; font-weight: bold;">nil</span><span style="color: #000000;">. </span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/funktsii-i-protsedury-upravleniya-myshyu.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Функция </span><span style="color: #000000; font-weight: bold;">FindVCLWindow</span><span style="color: #000000;">( </span><span style="color: #000000; font-weight: bold;">const</span><span style="color: #000000;"> Pos: </span><span style="color: #000000; font-style: italic;">TPoint</span><span style="color: #000000;"> ): </span><span style="color: #000000; font-style: italic;">TWinControl</span><span style="color: #000000;">;</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Функция возвращает оконное средство управления для местоположения, определенного параметром Pos. Если для данного местоположения нет оконных средств управления, то функция возвращает </span><span style="color: #000000; font-weight: bold;">nil</span><span style="color: #000000;">. </span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-zhelezom/myshka-klaviatura/myshka/funktsii-i-protsedury-upravleniya-myshyu.html">Подробнее...</a></p>