每次看网页太浪费时间了。做了个服务程序,后台运行。好得很!用了indy的IdHTTPGet的地址为: http://apps.manyou.com/1011554/buy.php?flid=*******************************
或者其他类似http://apps.manyou.com/1011554/ 的。看html代码,很容易找的!另外第一次写服务程序,有些地方不是很懂。
1,改服务不能停止,在服务里面停止他会出错。应该怎么修改?
2,据说sleep不能响应控制信号,那应该怎么做?我原来while mmsystem的timegettime,但是cpu消耗太大,怎么做才合理?请教了!还有,发帖子时候说我没有权给200分。我怎么办?unit ser;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IniFiles;type
  accessUrl = class(TThread)
  protected
    IdHTTP1: TIdHTTP;
    geturl:string;
    procedure Execute;override;
  public
    Constructor Create(url:string);
  end;type
  THappyOnline = class(TService)
    procedure ServiceCreate(Sender: TObject);
    procedure ServiceDestroy(Sender: TObject);
    procedure ServiceExecute(Sender: TService);
    procedure ThreadDone(Sender: TObject);
  private
    logrec:TStringList;
    spacetime:integer;
    geturl:string;
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;var
  HappyOnline: THappyOnline;implementation{$R *.DFM}Constructor accessUrl.Create(url:string);
begin
  geturl:=url;
  IdHTTP1:=TIdHTTP.Create(nil);
  FreeOnTerminate:=True;
  Inherited Create(False);
end;procedure accessUrl.Execute;
var
  body:string;
begin
  try
    body:=IdHTTP1.Get(geturl);
  except
  end;
  IdHTTP1.Free;
end;procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  HappyOnline.Controller(CtrlCode);
end;function THappyOnline.GetServiceController: TServiceController;
begin
  Result := @ServiceController;
end;procedure THappyOnline.ServiceCreate(Sender: TObject);
var
  conf:Tinifile;
begin
  logrec:=TStringList.Create;
  conf:=Tinifile.Create(ExtractFilePath(Paramstr(0))+'conf.ini');
  geturl:=conf.ReadString('Config', 'URL', '');
  logrec.LoadFromFile(ExtractFilePath(Paramstr(0))+'rec.txt');
  logrec.Add('Step 0 of:'+DateTimeToStr(now()));
  logrec.SaveToFile(ExtractFilePath(Paramstr(0))+'rec.ini');
  spacetime:=10*60*1000;
end;procedure THappyOnline.ServiceDestroy(Sender: TObject);
begin
  logrec.Free;
end;procedure THappyOnline.ServiceExecute(Sender: TService);
begin
  logrec.Add('Step 1 of:'+DateTimeToStr(now()));
  logrec.SaveToFile(ExtractFilePath(Paramstr(0))+'rec.ini');
  while not Terminated do
  begin
    with accessurl.Create(geturl) do
      OnTerminate:=accDone;
    sleep(10*60*1000)
  end;
  logrec.Add('Step 3 of:'+DateTimeToStr(now()));
  logrec.SaveToFile(ExtractFilePath(Paramstr(0))+'rec.ini');
end;procedure THappyOnline.ThreadDone;
begin
  logrec.Add('Step 2 of:'+DateTimeToStr(now()));
  logrec.SaveToFile(ExtractFilePath(Paramstr(0))+'rec.ini');
end;end.