| 
			
			 
			
				14.11.2012, 16:59
			
			
			
		 | 
	| 
		
			
			| Прохожий |  | 
					Регистрация: 30.10.2012 Сообщения: 33
 Репутация: 10     |  | 
	| 
				 как создать поток в dll 
 делаю вот так:  
	Код: library key;
uses
  FastShareMem,Windows,transmite,main,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,Math;
type dlltimer = class(TThread)
  protected
  procedure Work;
  procedure Execute; override;
  end;
var
  vartime: dlltimer;
  SysHook : HHook = 0;
  Wnd : Hwnd = 0;
{$R *.res}
    procedure dlltimer.Execute;
    begin
    Synchronize(Work);
    end;
    procedure dlltimer.Work;
    begin
    //sleep(1000);
    showmessage('работает таймер');
    end;
   
    function SysMsgProc(code : integer; wParam : word;
        lParam : longint) : longint; stdcall;
begin
        
    CallNextHookEx(SysHook, Code, wParam, lParam);
    if code = HC_ACTION then
    begin
       Wnd := TMsg(Pointer(lParam)^).hwnd;
    
        if TMsg(Pointer(lParam)^).message =WM_KEYDOWN then  
    case (TMsg(Pointer(lParam)^).wParam) of
    37:   begin
           .....
          end;
    end;
    end;
end;
    procedure RunStopHook(State : Boolean) export; stdcall;
      begin
          if State=true then
          begin
          SysHook := SetWindowsHookEx(WH_GETMESSAGE,
            @SysMsgProc, HInstance, 0);
        dlltimer.create(false);
        end
        else// Иначе
        begin
          UnhookWindowsHookEx(SysHook);
          SysHook := 0;
        end;
      end;
      exports RunStopHook;
    begin
    end. 
все компилится а сообщение в потоке dlltimer не выскакивает
			
 
			
			
			
				  |