反监视

来源:互联网 发布:blue nile淘宝 编辑:程序博客网 时间:2024/04/27 22:56

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function IsFileInUse(fName: string): boolean;
var
  HFileRes: HFILE;
begin
  Result := false;
  if not FileExists(fName) then
    exit;
  HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE,
    0 {this is the trick!}, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Result := (HFileRes = INVALID_HANDLE_VALUE);
  if not Result then
    CloseHandle(HFileRes);
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  logfile = 'c:/curHosts.txt';
begin
  button1.Caption := 'Finding...';
  if fileexists(logfile) then
    if not IsFileInUse(logfile) then
      deletefile(logfile);
  winexec('command.com /c net session>c:/curHosts.txt', 0);
  winexec('command.com /c net File>c:/curHosts.txt', 0);
  //button1.Enabled :=false;
  timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
const
  logfile = 'c:/curHosts.txt';
begin
  if fileexists(logfile) then
    if not IsFileInUse(logfile) then
    begin
      timer1.Enabled := false;
      memo1.Lines.LoadFromFile(logfile);
      button1.Caption := IntToStr(memo1.Lines.Count);
      button1.Enabled := true;
      button1.Click;
    end;
end;

end.

原创粉丝点击