找了一晚上资料了,还是搞不定,请各位高手写个示范代码,
主要就是要在dll文件中调用timer,实现每隔10分钟就执行abc.exe,应该不会太麻烦,请各位高手给份示范代码,谢谢先!

解决方案 »

  1.   

    dll
    ----------------
    library Project2;uses
      SysUtils,
      Classes,
      ExtCtrls,
      Windows;type
      TMyClass = class(TObject)
      private
        T: TTimer;
        procedure OnTimer(Sender: TObject);
      public
        constructor Create;
        destructor Destroy; override;
      end;var
      AClass: TMyClass;
      SaveExit: Pointer;{$R *.res}procedure OnTimer( Sender: TObject); stdcall;
    beginend;{ TMyClass }constructor TMyClass.Create;
    begin
      inherited;
      T := TTimer.Create(nil);
      T.OnTimer := OnTimer;
    end;destructor TMyClass.Destroy;
    begin
      T.Free;
      inherited;
    end;procedure TMyClass.OnTimer(Sender: TObject);
    begin
      WinExec('notepad.exe', SW_NORMAL);
    end;procedure MyExit;
    begin
      AClass.Free;
      ExitProc := SaveExit;
    end;begin
      AClass := TMyClass.Create;
      AClass.T.Interval := 5000;// * 60 * 10; //10分钟
      AClass.T.Enabled := True;
      SaveExit := @ExitProc;
      ExitProc := @MyExit;
    end.
    -------------
    test unitvar
      Form1: TForm1;
      Lib: THandle;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      LoadLibrary('Project2.dll');
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      FreeLibrary(Lib);
    end;
      

  2.   

    dll多写了个空的procedure
    ------------------------
    library Project2;uses
      SysUtils,
      Classes,
      ExtCtrls,
      Windows;type
      TMyClass = class(TObject)
      private
        T: TTimer;
        procedure OnTimer(Sender: TObject);
      public
        constructor Create;
        destructor Destroy; override;
      end;var
      AClass: TMyClass;
      SaveExit: Pointer;{$R *.res}{ TMyClass }constructor TMyClass.Create;
    begin
      inherited;
      T := TTimer.Create(nil);
      T.OnTimer := OnTimer;
    end;destructor TMyClass.Destroy;
    begin
      T.Free;
      inherited;
    end;procedure TMyClass.OnTimer(Sender: TObject);
    begin
      WinExec('notepad.exe', SW_NORMAL);
    end;procedure MyExit;
    begin
      AClass.Free;
      ExitProc := SaveExit;
    end;begin
      AClass := TMyClass.Create;
      AClass.T.Interval := 5000;// * 60 * 10; //10分钟
      AClass.T.Enabled := True;
      SaveExit := @ExitProc;
      ExitProc := @MyExit;
    end.