<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=108221&amp;view=findpost&amp;p=811315</guid>
        <pubDate>Fri, 06 Apr 2001 12:39:00 +0000</pubDate>
        <title>?</title>
        <link>https://forum.sources.ru/index.php?showtopic=108221&amp;view=findpost&amp;p=811315</link>
        <description><![CDATA[Sergey Anokhin: чтобы отслеживать нажатие клавиш во всех приложения, нужно сделать DLL с функцией Hook'a и вызывать эту функцию из проги.<br>Даже пример не жалко - по F12 выключает компьютер. У меня работает. (C) не мой - собрано из 2 примеров, не помню откуда.<br>=================================<br>program testwindow;<br>uses<br>  Windows,<br>  Messages;<br>var<br>  WinClass: TWndClassA;<br>  Inst, hMainWindow: Integer;<br>  Msg: TMsg;<br>  P:Pointer;<br>  DLL:HMODULE;<br>function key_hook(Code: integer; wParam: word; lParam: Longint): Longint; external 'Lib1.dll';<br>{ Custom WindowProc function }<br>function WindowProc(hWnd, uMsg,	wParam,	lParam: Integer): Integer; stdcall;<br>begin<br>  Result := DefWindowProc(hWnd, uMsg, wParam, lParam);<br>  { Checks for messages }<br>  if uMsg = WM_DESTROY then Halt;<br>end;<br>begin<br>  Inst := hInstance;<br>  with WinClass do<br>  begin<br>    style              := CS_CLASSDC or CS_PARENTDC;<br>    lpfnWndProc        := @WindowProc;<br>    hInstance          := Inst;<br>    hbrBackground      := color_btnface + 1;<br>    lpszClassname      := 'NewClass';<br>    hCursor            := LoadCursor(0, IDC_CROSS);<br>  end; { with }<br>  if (RegisterClass(WinClass)&lt;&gt;0)then<br>  begin<br>       hMainWindow := CreateWindowEx(WS_EX_WINDOWEDGE, 'NewClass', '',<br>                           WS_SIZEBOX or WS_CAPTION or WS_SYSMENU,<br>                           363, 278, 305, 130, 0, 0, Inst, nil);<br>       ShowWindow(hMainWindow,SW_HIDE);<br>       UpdateWindow(hMainWindow);<br>       DLL:=LoadLibrary('ShutDown');<br>       p:=@key_hook;<br>       while(GetMessage(Msg, hMainWindow, 0, 0)) do<br>       begin<br>            TranslateMessage(msg);<br>            DispatchMessage(msg);<br>       end;<br>       FreeLibrary(DLL);<br>  end;<br>end.<br>library ShutDown;<br>uses<br>    WinTypes, WinProcs, Messages;<br>var<br>   SaveExitProc : Pointer;<br>   HookHandle: hHook = 0;<br>function key_hook(Code: integer; wParam: word; lParam: Longint): Longint; stdcall;<br>begin<br>     if Code &gt;= 0 then<br>     begin<br>          if(wParam = VK_F12)then ExitWindowsEx(EWX_SHUTDOWN,0);<br>          Result:=0;<br>     end<br>     else<br>     Result := CallNextHookEx(HookHandle,Code, wParam, lParam);<br>end;<br>procedure LocalExitProc; far;<br>begin<br>     if HookHandle&lt;&gt;0 then<br>     begin<br>          UnhookWindowsHookEx(HookHandle);<br>          ExitProc := SaveExitProc;<br>     end;<br>end;<br>exports Key_hook;<br>begin<br>     HookHandle := SetWindowsHookEx(wh_Keyboard, @Key_Hook, hInstance, 0);<br>     if HookHandle &lt;&gt; 0 then<br>     begin<br>          SaveExitProc := ExitProc;<br>          ExitProc := @LocalExitProc;<br>     end;<br>end.]]></description>
        <author>Sergey Anokhin</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=108221&amp;view=findpost&amp;p=811314</guid>
        <pubDate>Fri, 23 Feb 2001 12:37:00 +0000</pubDate>
        <title>?</title>
        <link>https://forum.sources.ru/index.php?showtopic=108221&amp;view=findpost&amp;p=811314</link>
        <description><![CDATA[purpe: Для этого существуют API функции типа RegisterHotKey и ей подобные :)]]></description>
        <author>purpe</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=108221&amp;view=findpost&amp;p=811313</guid>
        <pubDate>Fri, 23 Feb 2001 10:09:00 +0000</pubDate>
        <title>?</title>
        <link>https://forum.sources.ru/index.php?showtopic=108221&amp;view=findpost&amp;p=811313</link>
        <description><![CDATA[IliaMarchevsky: Как программным образом отслеживать нажатые клавиши на клавиатуре при ЛЮБОМ активном приложении?]]></description>
        <author>IliaMarchevsky</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	