Network Gadgets (Management Sharing Files) ShareView

xiaoxiao2021-03-06  56

Copyright Notice: This article is completed by Lyris, started 9CBS, the author retains Chinese copyright. No commercial use is not permitted without permission. Welcome to the reprint, but please keep the article and copyright statement complete. For contact, please send an email: chenwentao@gmail.com

Screenshot:

Code:

Unit NetMonConsts;

Interface

Uses windows;

type TShareInfo2 = packed record shi2_netname: PWChar; shi2_type: DWORD; shi2_remark: PWChar; shi2_permissions: DWORD; shi2_max_uses: DWORD; shi2_current_uses: DWORD; shi2_path: PWChar; shi2_passwd: PWChar; end; PShareInfo2 = ^ TShareInfo2; TShareInfo2Array = array [0. .512] of tshareinfo2; pshareinfo2aray = ^ TshareInfo2aray;

type TShareInfo50 = packed record shi50_netname: array [0..12] of Char; shi50_type: Byte; shi50_flags: Word; shi50_remark: PChar; shi50_path: PChar; shi50_rw_password: array [0..8] of Char; shi50_ro_password: array [0 ..8] of char;

type TSessionInfo502 = packed record Sesi502_cname: PWideChar; Sesi502_username: PWideChar; Sesi502_num_opens: DWORD; Sesi502_time: DWORD; Sesi502_idle_time: DWORD; Sesi502_user_flags: DWORD; Sesi502_cltype_name: PWideChar; Sesi502_transport: PWideChar; end; PSessionInfo502 = ^ TSessionInfo502; TSessionInfo502Array = array [0. .512] OF TSESSIONFO502; PsessionInfo502Array = ^ tessioninfo502Array;

type TSessionInfo50 = packed record Sesi50_cname: PChar; Sesi50_username: PChar; sesi50_key: Cardinal; sesi50_num_conns: Word; sesi50_num_opens: Word; sesi50_time: Cardinal; sesi50_idle_time: Cardinal; sesi50_protocol: Byte; pad1: Byte; end;

type TFileInfo3 = packed record fi3_id: DWORD; fi3_permissions: DWORD; fi3_num_locks: DWORD; fi3_pathname: PWChar; fi3_username: PWChar; end; PFileInfo3 = ^ TFileInfo3; TFileInfo3Array = array [0..512] of TFileInfo3; PFileInfo3Array = ^ TFileInfo3Array; type TFILEINFO50 = Packed Record Fi50_id: cardinal; FI50_PERMISSIONS: WORD; FI50_NUM_LOCKS: WORD; FI50_USHAME: PCHAR; FI50_USERNAME: PCHAR; FI50_SHARENAME: PCHAR; END

type TMibIfRow = packed record wszName: array [0..255] of WideChar; dwIndex: DWORD; dwType: DWORD; dwMtu: DWORD; dwSpeed: DWORD; dwPhysAddrLen: DWORD; bPhysAddr: array [0..7] of Byte; dwAdminStatus : DWORD; dwOperStatus: DWORD; dwLastChange: DWORD; dwInOctets: DWORD; dwInUcastPkts: DWORD; dwInNUCastPkts: DWORD; dwInDiscards: DWORD; dwInErrors: DWORD; dwInUnknownProtos: DWORD; dwOutOctets: DWORD; dwOutUCastPkts: DWORD; dwOutNUCastPkts: DWORD; dwOutDiscards: DWORD ; dwOutErrors: DWORD; dwOutQLen: DWORD; dwDescrLen: DWORD; bDescr: array [0..255] of Char; end; TMibIfArray = array [0..512] of TMibIfRow; PMibIfRow = ^ TMibIfRow; PMibIfArray = ^ TMibIfArray;

type TMibIfTable = packed record dwNumEntries: DWORD; Table: TMibIfArray; end; PMibIfTable = ^ TMibIfTable; var NetShareEnumNT: function (servername: PWChar; level: DWORD; bufptr: Pointer; prefmaxlen: DWORD; entriesread, totalentries, resume_handle: LPDWORD): DWORD; stdcall;

var NetShareEnum: function (pszServer: PChar; sLevel: Cardinal; pbBuffer: Pchar; cbBuffer: Cardinal; pcEntriesRead, pcTotalAvail: Pointer): DWORD; stdcall; var NetShareDelNT: function (servername: PWideChar; netname: PWideChar; reserved: DWORD): Stdcall;

Var NetSharedel: Function (PSZServer, PsznetName: Pchar; USRESERVED: WORD): DWORD; stdcall;

Var netshareaddnt: function (ServerName: PWIDECHAR; Level: DWORD; buf: Pointer; PARM_ERR: LPDWORD): DWORD; stdcall;

Var NetShareadd: Function (PSZServer: Pchar; Slevel: Cardinal; PBBuffer: Pchar; CBBuffer: Word): DWORD; stdcall;

Var NetSessionNumnNumnt: Function (ServerName, UNCCLIENTNAME, Username: pwchar; level: dword; bufptr: Pointer; Prefmaxlen: DWORD; ENTRIESREAD, TOTALENTRIES, RESUME_HANDLE: LPDWORD: DWORD; stdcall;

Var NetSessionNum: Function (PSZServer: Pchar; Slevel: DWORD; PBBUFFER: PCBUFFER: DWORD; PCENTRIESREAD, PCTOTALAVIAL: POINTER: Integer; stdcall;

Var NetSessionDelnt: function (servername, uncclientname, username: pwchar): DWORD; stdcall;

Var NetSessionDel: Function (PSZServer: Pchar; PszclientName: Pchar; SRESERVED: Smallint): DWORD; stdcall;

Var NetfileEnumnUmnt: Function (ServerName, Basepath, Username: PWchar; Level: DWORD; BUFPTR: POINTER; Prefmaxlen: DWORD; EntriesRead, Totalentries, Resume_Handle: LPDWORD): DWORD; stdcall;

Var NetfileEnum: Function (PSZServer, Pszbasepath: Pchar; Slevel: DWORD; PBBUFFER: POINTER; CBBuffer: DWORD; PCENTRIESREAD, PCTOALAVAIL: POINTER): Integer; stdcall;

Var NetfileClose: Function (SERID: DWORD): DWORD; stdcall; var netfileclose2: function (pszserver: pchar; ulfileid: longword): dword; stdcall;

Var getiftable: function (PIFTABLE: PMIBIFTABLE; PDWSIZE: PULONG; Border: Boolean): DWORD; stdcall;

IMPLEMENTATION

End. Unit NetMonUtils;

Interface

Uses Windows, Classes, NetMonConsts

Function isnt (VAR value: boolean): boolean;

Procedure getshares; procedure clos Hare (ShareName: String); Procedure Addshare (ShareName, Sharedir: String);

Procedure getsess (List: tstrings); Procedure Closesession (sessionname: string);

Procedure getfiles (fileslist: tstrings); Procedure Closefile (FileIndex: String);

Procedure GetTrafficSets (TrafficsList: Tstrings);

Function IntegertotimeStr (Value: Integer): String;

type TShareInfo2Obj = class private Fshi2_netname: string; Fshi2_path: string; procedure Setshi2_netname (const Value: string); procedure Setshi2_path (const Value: string); public constructor Create (ShareInfo2: TShareInfo2); property shi2_netname: string read Fshi2_netname write Setshi2_netname; property shi2_path: string read Fshi2_path write Setshi2_path; end; TShareInfo50Obj = class private Fshi50_netname: string; Fshi50_path: string; procedure Setshi50_netname (const Value: string); procedure Setshi50_path (const Value: string); public constructor Create (ShareInfo50: TShareInfo50); property shi50_netname: string read Fshi50_netname write Setshi50_netname; property shi50_path: string read Fshi50_path write Setshi50_path; end; TSessionInfo502Obj = class private FSesi502_Time: DWord; Fsesi502_idle_time: DWord; FSesi502_num_opens: DWord; FSesi502_cname: WideString; FSesi502_username: WideString ; Procedure SetSesi502_cname (const Value: WideString); procedure Setsesi502_idle_time (const Value: DWord); procedure SetSesi502_num_opens (const Value: DWord); procedure SetSesi502_Time (const Value: DWord); procedure SetSesi502_username (const Value: WideString); public constructor Create ( SessionInfo502: TSessionInfo502); property Sesi502_cname: WideString read FSesi502_cname write SetSesi502_cname; property Sesi502_username: WideString read FSesi502_username write SetSesi502_username; property Sesi502_num_opens: DWord read FSesi502_num_opens write SetSesi502_num_opens; property Sesi502_Time: DWord read FSesi502_Time write SetSesi502_Time;

property sesi502_idle_time: DWord read Fsesi502_idle_time write Setsesi502_idle_time; end; TSessionInfo50Obj = class private Fsesi50_num_opens: Integer; Fsesi50_time: Integer; Fsesi50_idle_time: Integer; FSesi50_cname: WideString; FSesi50_username: WideString; procedure SetSesi50_cname (const Value: WideString); procedure Setsesi50_idle_time (const Value: Integer); procedure Setsesi50_num_opens (const Value: Integer); procedure Setsesi50_time (const Value: Integer); procedure SetSesi50_username (const Value: WideString); public constructor Create (SessionInfo50: TSessionInfo50); property Sesi50_cname: WideString read FSesi50_cname write SetSesi50_cname; property Sesi50_username : WideString read FSesi50_username write SetSesi50_username; property sesi50_num_opens: Integer read Fsesi50_num_opens write Setsesi50_num_opens; property sesi50_time: Integer read Fsesi50_time write Setsesi50_time; property sesi50_idle_time: Integer Read fsesi50_idle_time write setsi50_idle_time;

TFileInfo3Obj = class private Ffi3_permissions: DWord; Ffi3_num_locks: DWord; Ffi3_id: DWord; Ffi3_pathname: WideString; Ffi3_username: WideString; procedure Setfi3_id (const Value: DWord); procedure Setfi3_num_locks (const Value: DWord); procedure Setfi3_pathname (const Value: WideString) ; procedure Setfi3_permissions (const Value: DWord); procedure Setfi3_username (const Value: WideString); public constructor Create (FileInfo3: TFileInfo3); property fi3_id: DWord read Ffi3_id write Setfi3_id; property fi3_permissions: DWord read Ffi3_permissions write Setfi3_permissions; property fi3_num_locks: DWord read Ffi3_num_locks write Setfi3_num_locks; property fi3_pathname: WideString read Ffi3_pathname write Setfi3_pathname; property fi3_username: WideString read Ffi3_username write Setfi3_username; end;

type TFileInfo50Obj = class private Ffi50_id: Integer; Ffi50_pathname: string; Ffi50_username: string; Ffi50_sharename: string; Ffi50_permissions: WORD; Ffi50_num_locks: WORD; procedure Setfi50_id (const Value: Integer); procedure Setfi50_num_locks (const Value: WORD); procedure Setfi50_pathname ( const Value: string); procedure Setfi50_permissions (const Value: WORD); procedure Setfi50_sharename (const Value: string); procedure Setfi50_username (const Value: string); public constructor Create (FileInfo50: TFileInfo50); property fi50_id: Integer read Ffi50_id write Setfi50_id ; property fi50_permissions: WORD read Ffi50_permissions write Setfi50_permissions; property fi50_num_locks: WORD read Ffi50_num_locks write Setfi50_num_locks; property fi50_pathname: string read Ffi50_pathname write Setfi50_pathname; property fi50_username: string read Ffi50_username write Setfi50_username; property fi50_sharename: string re ad Ffi50_sharename write Setfi50_sharename; end; type TMAC = array [0..7] of Byte; TTraffic = class private FMAC: string; FdwOutOctets: Integer; FdwInOctets: Integer; FCaption: string; procedure SetCaption (const Value: string); procedure SetdwInOctets (const Value: Integer); procedure SetdwOutOctets (const Value: Integer); procedure SetMAC (const Value: string); function getMAC (Value: TMAC; Length: DWORD): string; public constructor Create (MibIfRow: TMibIfRow); property CAPTION: STRING READ FCAPTION WRITE SETCAPTION; Property Mac: String Read FMAC Write SetMac; Property DwinockOctets: Integer Read FDWinOctets Write set

Property DwoutockTs: Integer Read FDWoutOctets Write SetdWoutOCTS; End; Implementation

Uses sysutils;

Function isnt (var value: boolean; var ver: tosversioninfo; boolean; begin ver.dwosversioninfosize: = sizeof (tosversioninfo); Bres: = getversionEx (Ver); if not bres the begin result: = false; exit END ELSE RESULT: = TRUE;

Case Ver.dwplatformID of VER_PLATFORM_WIN32_NT: VALUE: = true; ver_platform_win32_windows: value: = false; ver_platform_win32s: result: = false end;

procedure GetShares (SharesList: TStrings); var i: Integer; FLibHandle: THandle; ShareNT: PShareInfo2Array; entriesread, totalentries: DWORD; // <= Win NT Share: array [0..512] of TShareInfo50; pcEntriesRead, pcTotalAvail: Word ; // <= windows 9x-me OS: boolean; begin if not isnt (OS) THEN EXIT; if = loadLibrary ('Netapi32.dll'); if Flibhandle = 0 Then Exit; @NetshareenumNT: = GetProcAddress (FLibHandle, 'NetShareEnum'); if not Assigned (NetShareEnumNT) then begin FreeLibrary (FLibHandle); Exit; end; ShareNT: = nil; if NetShareEnumNT (nil, 2, @ShareNT, DWORD (-1), @entriesread, @totalentries, nil) <> 0 then begin FreeLibrary (FLibHandle); Exit; end; if entriesread> 0 then for i: = 0 to entriesread - 1 do SharesList.AddObject (string (ShareNT ^ [i] .shi2_netname), TShareInfo2Obj .Create (Sharent ^ [i])); Else Begin Flibhandle: = loadingLibrary ('svrapi.dll'); if Flib Handle = 0 then Exit; @NetShareEnum: = GetProcAddress (FLibHandle, 'NetShareEnum'); if not Assigned (NetShareEnum) then FreeLibrary (FLibHandle); Exit; if NetShareEnum (nil, 50, @Share, SizeOf (Share), @pcEntriesRead , @pcTotalAvail) <> 0 then begin FreeLibrary (FLibHandle); Exit; end; if pcEntriesRead> 0 then for i: = 0 to pcEntriesRead - 1 do SharesList.AddObject (string (Share [i] .shi50_netname), TShareInfo50Obj.Create (Share [i])); end; freeelibrary (flibrandle);

Procedure CloseShare (ShareName: String); VAR OS: Boolean; Flibhandle: Thandle; Name9x: Array [0..12] of char; NAMENT: PWCHAR; I: Integer; Begin if not isnt (OS) Then EXIT; if Os Then begin FLibHandle: = LoadLibrary ( 'NETAPI32.DLL'); if FLibHandle = 0 then Exit; @NetShareDelNT: = GetProcAddress (FLibHandle, 'NetShareDel'); if not Assigned (NetShareDelNT) then begin FreeLibrary (FLibHandle); Exit; end; i: = SizeOf (WideChar) * 256; GetMem (NameNT, i); StringToWideChar (ShareName, NameNT, i); NetShareDelNT (nil, NameNT, 0); FreeMem (NameNT); end else begin FLibHandle: = LoadLibrary ( 'SVRAPI .DLL '); if FLibHandle = 0 then Exit; @NetShareDel: = GetProcAddress (FLibHandle,' NetShareDel '); if not Assigned (NetShareDel) then begin FreeLibrary (FLibHandle); Exit; end; FillChar (Name9x, SizeOf (Name9x) , # 0); Move (Sharename [1], Name9X [0], Length); Netsharedel (NIL, @ Name9x, 0); end; fr Eelibrary (FLIBHANDLE); END;

procedure AddShare (ShareName, ShareDir: string); const STYPE_DISKTREE = 0; ACCESS_ALL = 258; SHI50F_FULL = 258; var FLibHandle: THandle; Share9x: TShareInfo50; ShareNT: TShareInfo2; TmpDirNT, TmpNameNT: PWChar; OS: Boolean; TmpLength: Integer; Begin if not isnt (os).

if OS then begin FLibHandle: = LoadLibrary ( 'NETAPI32.DLL'); if FLibHandle = 0 then Exit; @NetShareAddNT: = GetProcAddress (FLibHandle, 'NetShareAdd'); if not Assigned (NetShareAddNT) then begin FreeLibrary (FLibHandle); Exit End; TMPLENGTH: = SizeOf (widechar) * 256; getMem (TmpNament, TMPLENGTH); StringTowideChar (ShareName, TMPNAMENT, TMPLENGTH); Sharent.shi2_NetName: = TMPNAMENT;

Sharent.shi2_type: = stype_disktree; sharent.shi2_remark: = '; Sharent.shi2_Permissions: = Access_all; Sharent.shi2_max_uses: = dword (-1); sharent.shi2_current_uses: = 0;

GetMem (TMPDIRNT, TMPLENGTH); StringTowideChar (Sharedir, TmpDirnt, TMPLENGTH); Sharent.shi2_path: = tmpdirnt;

Sharent.shi2_passwd: = '';

NetShareAddNT (nil, 2, @ShareNT, nil); FreeMem (TmpNameNT); FreeMem (TmpDirNT); end else begin FLibHandle: = LoadLibrary ( 'SVRAPI.DLL'); if FLibHandle = 0 then Exit; @NetShareAdd: = GetProcAddress ( FLibHandle, 'NetShareAdd'); if not Assigned (NetShareAdd) then begin FreeLibrary (FLibHandle); Exit; end; FillChar (Share9x.shi50_netname, SizeOf (Share9x.shi50_netname), # 0); move (ShareName [1], Share9x. shi50_netname [0], Length (ShareName)); Share9x.shi50_type: = STYPE_DISKTREE; Share9x.shi50_flags: = SHI50F_FULL; FillChar (Share9x.shi50_remark, SizeOf (Share9x.shi50_remark), # 0); FillChar (Share9x.shi50_path, SizeOf ( Share9x.shi50_path), # 0); Share9x.shi50_path: = PAnsiChar (shareDir); FillChar (Share9x.shi50_rw_password, SizeOf (Share9x.shi50_rw_password), # 0); FillChar (Share9x.shi50_ro_password, SizeOf (Share9x.shi50_ro_password), # 0); NetShareAdd (NIL, 50, @ share9x, sizeof (share9x)); end; freeel Ibrary (FLIBHANDLE); END;

procedure GetSessions (List: TStrings); var OS: Boolean; FLibHandle: THandle; SessionInfo50: array [0..512] of TSessionInfo50; SessionInfo502: PSessionInfo502Array; TotalEntries, EntriesReadNT: DWORD; EntriesRead, TotalAvial: Word; i: integer; begin List.Clear; if not IsNT (OS) then Exit; if OS then begin FLibHandle: = LoadLibrary ( 'NETAPI32.DLL'); if FLibHandle = 0 then Exit; @NetSessionEnumNT: = GetProcAddress (FLibHandle, 'NetSessionEnum'); if not Assigned (NetSessionEnumNT) then begin FreeLibrary (FLibHandle); Exit; end; SessionInfo502: = nil; if NetSessionEnumNT (nil, nil, nil, 502, @ SessionInfo502, DWORD (-1), @entriesreadNT, @totalentries, nil) = 0 then for i: = 0 to EntriesReadNT - 1 do List.AddObject (string (SessionInfo502 ^ [i] .sesi502_cname), TSessionInfo502Obj.Create (SessionInfo502 ^ [i])); end else begin FLibHandle: = LoadLibrary ( 'SVRAPI. Dll '); if flibhandle = 0 Then EXIT; @NetSessionNum: = Getp rocAddress (FLibHandle, 'NetSessionEnum'); if not Assigned (NetSessionEnum) then begin FreeLibrary (FLibHandle); Exit; end; if NetSessionEnum (nil, 50, @ SessionInfo50, SizeOf (SessionInfo50), @EntriesRead, @TotalAvial) = 0 then For i: = 0 to entriesread - 1 do list.addObject (String (sessioninfo50 [i] .Sesi50_cname), tessioninfo50obj.create (sessioninfo50 [i])); end; freeelibrary (flibrandle);

procedure CloseSession (SessionName: string); var OS: Boolean; FLibHandle: THandle; CNameNT: PWideChar; CName9x: PAnsiChar; Key: SmallInt; begin if not IsNT (OS) then Exit; if OS then begin FLibHandle: = LoadLibrary ( 'NETAPI32 .DLL '); if FLibHandle = 0 then Exit; @NetSessionDelNT: = GetProcAddress (FLibHandle,' NetSessionDel '); if not Assigned (NetSessionDelNT) then begin FreeLibrary (FLibHandle); Exit; end; CNameNT: = PWChar (WideString (' // ' SessionName)); NetSessionDelNT (nil, CNameNT, nil); end else begin FLibHandle: = LoadLibrary (' SVRAPI.DLL '); if FLibHandle = 0 then Exit; @NetSessionDel: = GetProcAddress (FLibHandle,' NetSessionDel ' IF Not Assigned (NetsessionDel) THEN BEGIN FREELIBRARY (FLIBHANDLE); EXIT; END; cname9x: = Pansichar (sessionname); // key: = sessionclosekey [i]; // netsessionDel (nil, cname9x, key); end; Freelibrary (FLIBHANDLE); END;

procedure GetFiles (FilesList: TStrings); var OS: Boolean; FLibHandle: THandle; FileInfoNT: PFileInfo3Array; FileInfo9x: array [0..512] of TFileInfo50; TotalEntries, EntriesReadNT: DWORD; EntriesRead, TotalAvial: Word; i: integer; begin if not IsNT (OS) then Exit; FilesList.Clear; if OS then begin FLibHandle: = LoadLibrary ( 'NETAPI32.DLL'); if FLibHandle = 0 then Exit; @NetFileEnumNT: = GetProcAddress (FLibHandle, 'NetFileEnum'); if NOT ASSIGNED (NetfileEnumn); exit; end; fileinfont: = nil; if NetfileEnumnt (NIL, NIL, NIL, 3, @fileinfont, dword (-1), @entriesread, @totalentries, nil) = 0 THEN for i: = 0 TO ENTRIESREADNT - 1 Do FileSlist.addObject (String (fileinfont ^ [i] .fi3_id)), tfileinfo3obj.create (fileInfont ^ [i])); Else Begin flibhandle: = loadingLibrary 'Svrapi.dll'); if flibhandle = 0 THEN EXIT; @NetfileEnum: = getProcadDress (Flibhandle, 'NetfileEnum'); if not Assigned (NetFileEnum) then begin FreeLibrary (FLibHandle); Exit; end; if NetFileEnum (nil, nil, 50, @ FileInfo9x, SizeOf (FileInfo9x), @EntriesRead, @TotalAvial) = 0 then for i: = 0 to EntriesRead - 1 Do FileSlist.adDObject (INTTOSTR (fileinfo9x [i] .fi50_id), tfileinfo50obj.create (fileInfo9x [i])); end; freeelibrary (flibrandle);

Procedure closefile; var Os: boolean; flibhandle: thandle; begin if not isnt (OS) THEN EXIT; if os dam // Summer? 潆  NT flibrandle: = loadingLibrary ('NetApi32.dll'); if FLibHandle = 0 then Exit; @NetFileClose: = GetProcAddress (FLibHandle, 'NetFileClose'); if not Assigned (NetFileClose) then begin FreeLibrary (FLibHandle); Exit; end; NetFileClose (nil, StrToInt (FileIndex)); end else begin FLibHandle: = LoadLibrary ( 'SVRAPI.DLL'); if FLibHandle = 0 then Exit; @ NetFileClose2: = GetProcAddress (FLibHandle, 'NetFileClose2'); if not Assigned (NetFileClose2) then begin FreeLibrary (FLibHandle); Exit; end; NetFileClose2 (nil, StrToInt (FileIndex)); end; FreeLibrary (FLibHandle); end; procedure GetTrafficSets (TrafficsList: TStrings); var FLibHandle: THandle; Table: TMibIfTable; i: integer; Size: integer; begin TrafficsList.Clear; FLibHandle: = LoadLibrary ('iPhlPapi.dll'); if Flib Handle = 0 then Exit; @GetIfTable: = GetProcAddress (FLibHandle, 'GetIfTable'); if not Assigned (GetIfTable) then begin FreeLibrary (FLibHandle); Exit; end; Size: = SizeOf (Table); if GetIfTable (@Table, @Size, false) = 0 THEN for i: = 0 to Table.dwnumentries-1 Do TrafficSlist.adDObject (Table.Table [i] .bdescr, TTRAFFIC.CREATE (Table.Table [i]); FreeElibrary (FLIBHANDLE) ;

Function IntegertotimeStr (Value: Integer): string; var D, H, M, S: REAL; begin D: = 0; H: = 0; M: = 0; s: = value; if s> 59 The begin M: = INT (S / 60); s: = s - (m * 60); End; IF m> 59 THEN BEGIN H: = INT (m / 60); m: = m - (h * 60); IF H> 23 Then Begin D: = INT (h: h: h: = h - (d * 24); End; Result: = '; if (d> 0) Then Result: = Result Floattostr (D ) 'd.'; if (h <9) Then Result: = Result '0' FLOATTOSTR (H) ':' else result: = result floattostr (h) ':'; if (M < 9) THEN RESULT: = Result '0' floattostr (m) ':' Else Result: = Result FLOATTOSTR (M) ':'; if (S <9) Then Result: = Result '0' floattostr (s) else result: = Result floattostr (s); end; {tessioninginfo50obj}

Constructor tessioninfo50obj.create (sessioninfo50: tessioninfo50); begin fsesi50_cname: = sessioninfo50.sesi50_cname; fsesi50_username: = sessioninfo50.sesi50_username;

END;

Procedure tessioninfo50obj.setSesi50_cname (const value: wideString); begin fsesi50_cname: = value;

Procedure tessioninfo50obj.setSesi50_idle_time (const value: integer); begin fsesi50_idle_time: = value;

Procedure tessioninfo50obj.setSesi50_num_opens (const value: integer); begin fsesi50_num_opens: = value;

Procedure tessioninfo50obj.setSesi50_time (const value: integer); begin fsesi50_time: = value;

Procedure tessioninfo50obj.setsesi50_username (const value: wideString); begin fsesi50_username: = value;

{Tessioninfo502obj}

constructor TSessionInfo502Obj.Create (SessionInfo502: TSessionInfo502); begin FSesi502_cname: = SessionInfo502.Sesi502_cname; FSesi502_username: = SessionInfo502.Sesi502_username; FSesi502_num_opens: = SessionInfo502.Sesi502_num_opens; FSesi502_Time: = SessionInfo502.Sesi502_time; Fsesi502_idle_time: = SessionInfo502.Sesi502_idle_time; end;

Procedure tessioninfo502obj.setSesi502_cname (const value: wideString); begin fsesi502_cname: = value;

Procedure tessioninfo502obj.setsesi502_idle_time (const value: dword); begin fsesi502_idle_time: = value;

Procedure tessioninfo502obj.setSesi502_num_opens (const value: dword); begin fsesi502_num_opens: = value;

Procedure tessioninfo502obj.setSesi502_time (const value: dword); begin fsesi502_time: = value;

Procedure tessioninfo502obj.setsesi502_username (const value: wideString); begin fsesi502_username: = value;

{Tfileinfo3obj}

constructor TFileInfo3Obj.Create (FileInfo3: TFileInfo3); begin Ffi3_id: = FileInfo3.fi3_id; Ffi3_permissions: = FileInfo3.fi3_permissions; Ffi3_num_locks: = FileInfo3.fi3_num_locks; Ffi3_pathname: = FileInfo3.fi3_pathname; Ffi3_username: = FileInfo3.fi3_username; end;

Procedure tfileinfo3obj.setfi3_id (const value: dword); begin ffi3_id: = value;

Procedure tfileinfo3obj.setfi3_num_locks (const value: dword); begin ffi3_num_locks: = value;

Procedure tfileinfo3obj.setfi3_pathname (const value: wideString); begin ffi3_pathname: = value;

Procedure tfileinfo3obj.setfi3_permissions; begin ffi3_permissions: = value;

Procedure tfileinfo3obj.setfi3_username (const value: wideString); begin ffi3_username: = value; end; {tfileinfo50obj}

constructor TFileInfo50Obj.Create (FileInfo50: TFileInfo50); begin Ffi50_id: = FileInfo50.fi50_id; Ffi50_permissions: = FileInfo50.fi50_permissions; Ffi50_num_locks: = FileInfo50.fi50_num_locks; Ffi50_pathname: = FileInfo50.fi50_pathname; Ffi50_username: = FileInfo50.fi50_username; Ffi50_sharename: = FileInfo50 .fi50_sharename;

Procedure tfileinfo50obj.setfi50_id (const value: integer); begin ffi50_id: = Value;

Procedure tfileinfo50obj.setfi50_num_locks (const value: word); begin ffi50_num_locks: = value;

Procedure tfileinfo50obj.setfi50_pathname (const value: string); begin ffi50_pathname: = value;

Procedure tfileinfo50obj.setfi50_permissions (const value: word); begin ffi50_permissions: = value;

Procedure tfileinfo50obj.setfi50_sharename (const value: string); begin ffi50_sharename: = value;

Procedure tfileinfo50obj.setfi50_username (const value: string); begin ffi50_username: = value;

END;

{TTRAFFIC}

constructor TTraffic.Create (MibIfRow: TMibIfRow); begin FCaption: = string (MibIfRow.bDescr); FMAC: = GetMAC (TMAC (MibIfRow.bPhysAddr), MibIfRow.dwPhysAddrLen); FdwInOctets: = MibIfRow.dwInOctets; FdwOutOctets: = MibIfRow. Dwoutock;

Procedure tTRAFFIC.SETCAPTION (Const value: string); begin fcaption: = value;

Procedure tTRAFFIC.SETDWINOCTES (Const value: integer); begin fdwinoctets: = value;

Procedure TTRAFFIC.SETDWOUTOCTS (Const Value: Integer); Begin FdwoutockTs: = Value;

Procedure TTRAFFIC.SETMAC (const value: string); begin fmac: = value; end; function tTRAFFIC.GETMAC (Value: TMAC; Length: dword): string; var i: integer; begin if length = 0 Then Result: = ' 00-00-00-00-00-00 'Else Begin Result: ='; for i: = 0 to Length - 2 Do Result: = Result INTTOHEX (Value [i], 2) '-'; Result : = Result INTTOHEX (Value [Length - 1], 2); END;

{Tessioninfo2obj}

Constructor TshareInfo2obj.create (ShareInfo2: TshareInfo2); begin fshi2_netname: = shareinfo2.shi2_netname; fshi2_path: = shareinfo2.shi2_path; end;

Procedure tshareInfo2obj.setshi2_netname (const value: string); begin fshi2_netname: = value;

Procedure tshareInfo2obj.setshi2_path (const value: string); begin fshi2_path: = value;

{TshareInfo50obj}

Constructor tshareinfo50obj.create (ShareInfo 50: TshareInfo 50); begin fshi50_netName: = shareinfo50.shi50_netname; fshi50_path: = ShareInfo 50.shi50_path; end;

Procedure tshareinfo50obj.setshi50_netName (const value: string); begin fshi50_netname: = value;

Procedure tshareInfo50obj.setshi50_path (const value: string); begin fshi50_path: = value;

End. Unit netsendutils;

Interface

Uses classes, windows;

Procedure getnetGroupNameList (Names: tstrings); Procedure getComputernameList (Groupname: string; names: tstrings);

IMPLEMENTATION

procedure GetNetGroupNameList (Names: TStrings); var lphEnum: THandle; Buf1, Buf2: Pointer; Count, BufSize, Res: DWORD; P: ^ TNetResource; I, J: Integer; List: TList; NetResource: TNetResource; begin // Get The handle of the file resource in the entire network, lphenum is returned by the list RES: = WNETOPENENUM (Resource_GlobalNet, ResourceTyPE_Disk, Resourceusage_Container, NIL, LPHENUM); if res <> no_error life exit; // Perform failed // Get the network in the entire network Type information count: = $ fffffff; // unlimited resource number buffsize: = 8192; // Buffer size is set to 8k getmem (buf1, bufsize); // Apply for memory, used to obtain workgroup information list: = TLIST. Create; try res: = WneetenumResource (lphenum, count, pointer); if (res <> ire_no_more_items) or (res <> NO_ERROR) THEN EXIT; // Resource listing or failure P: = BUF1; for I: = 0 to count - 1 do begin list.add (p); inc (p); end; res: = wnetcloseenum (lphenum); // Close a list of ife <> no_ERror thr in; for i: = 0 To list.count -1 do begin NetResource: = TNetResource (List.Items [I] ^); Res: = WNetOpenEnum (RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, @NetResource, lphEnum); if Res <> NO_ERROR then break; // fails Names.Clear; while True do Begin count: = $ fffffff; // unlimited number of resources GetMem (buf2, bufsize); // Apply for memory, used to obtain work group information try res: = WneetenumResource (Lphenum, Count, Pointer (BUF2), BUFSIZE / Get a network type file resource information if (res = error_no_more_items) or (res <> no_error) Then Break; // Resource listing or failing P: = BUF2; for J: =

0 to count - 1 do // Replace the information of each working group begin names.add (p ^ .lpremotename); Inc (p); end; finally freemem (buf2, bufsize); end; end; end; finally freemem (buf1 , BufSize); List.Free; end; end; procedure GetComputerNameList (GroupName: string; Names: TStrings); var NetResource: TNetResource; P: ^ TNetResource; lphEnum: THandle; Buf1: Pointer; Count, BufSize, Res: DWORD; I: Integer; begin FillChar (NetResource, SizeOf (NetResource), 0); // initialize the network hierarchy information NetResource.lpRemoteName: = @GroupName [1]; // specified workgroup name NetResource.dwDisplayType: = RESOURCEDISPLAYTYPE_SERVER; // type server (workgroup) NetResource.dwUsage: = RESOURCEUSAGE_CONTAINER; NetResource.dwScope: = RESOURCETYPE_DISK; // // get the information listed in the file resource network resource handle Res designated working groups: = WNetOpenEnum (RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, @NetResource, lphenum); if res <> no_error life exit; // Execute the failure Names.clear; While True DO // Replace the network resource of the designated workgroup Begin C Ount: = $ fffffff; // unlimited resource number bufsize: = 8192; // Buffer size is set to 8k getmem (buf1, bufsize); // Apply for memory, used to obtain work group information TRY RES: = WnertenuMResource (lphenum , Count, pointer (buf1); if res = error_no_more_items the Break; // Resource lists IF (res <> no_error) Then exit; // Execution failed P: = BUF1; for i: = 0 to count - 1 Do // List the computer name of the working group begin names.add (p ^ .Lpremotename 2); Inc (p); end; finaLy FreeMem (buf1); end; end;

End. Unit mainfrm;

Interface

Uses Windows, Messages, Sysutils, Classes, Graphics, Controls, Forms, Dialogs, Imglist, Stdctrls, Extctrls, Comctrls, Toolwin, Menus, Actnlist, Trayicon

type TMainForm = class (TForm) StatusBar1: TStatusBar; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; TreeImageList: TImageList; Panel1: TPanel; Panel2: TPanel; gbxTraffic: TGroupBox; bvlTraffic: TBevel; lvTraffic: TListView; gbxShares: TGroupBox ; gbxSessions: TGroupBox; bvlSessions: TBevel; lvSessions: TListView; pmShare: TPopupMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; pmSession: TPopupMenu; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; Splitter1 : TSplitter; PnlMsg: TPanel; Splitter2: TSplitter; Splitter3: TSplitter; PnlClnt: TPanel; PnlClntTop: TPanel; PnlClntBtm: TPanel; btnOk: TButton; btnClose: TButton; GroupBox1: TGroupBox; MemoContents: TMemo; Splitter4: TSplitter; GroupBox2: TGroupBox Label1: TLABEL; EDTONAME: TEDIT; Label2: TLABEL; Edfrom: Tedit; Panel3: TPANEL TvComputer: TTreeView; pmTraffic: TPopupMenu; N8: TMenuItem; ActionList1: TActionList; ShareRefreshAction: TAction; ShareCloseAction: TAction; ShareAddAction: TAction; SessionRefreshAction: TAction; SessionCloseAction: TAction; NetImageList: TImageList; TrafficRefreshAction: TAction; Bevel1: TBevel; LvShares: TListView; Timer1: TTimer; FileRefreshAction: TAction; FileCloseAction: TAction; pmFiles: TPopupMenu; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; Splitter6: TSplitter; GroupBox3: TGroupBox; Bevel2: TBevel; LvFiles: TListView; N12: TMenuItem; N13: TMENUITEM; N14: TMENUITEM; N15: TMENUITEM; PMTree: TPopupMenu

N16: TMenuItem; PopupMenu1: TPopupMenu; N17: TMenuItem; N18: TMenuItem; N19: TMenuItem; procedure FormCreate (Sender: TObject); procedure FormDestroy (Sender: TObject); procedure FormActivate (Sender: TObject); procedure TvComputerClick (Sender: TObject ); procedure BtnCloseClick (Sender: TObject); procedure BtnOkClick (Sender: TObject); procedure EdToNameChange (Sender: TObject); procedure ShareRefreshActionExecute (Sender: TObject); procedure ShareCloseActionExecute (Sender: TObject); procedure LvSharesMouseDown (Sender: TObject; Button : TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ShareAddActionExecute (Sender: TObject); procedure SessionRefreshActionExecute (Sender: TObject); procedure SessionCloseActionExecute (Sender: TObject); procedure TrafficRefreshActionExecute (Sender: TObject); procedure Timer1Timer (Sender : TOBJECT); Procedure FormShow; Procedure FileRefreshactionExecu te (Sender: TObject); procedure lvSessionsMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure LvFilesMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) ; procedure FileCloseActionExecute (Sender: TObject); procedure N13Click (Sender: TObject); procedure N15Click (Sender: TObject); procedure N16Click (Sender: TObject); procedure N19Click (Sender: TObject); procedure N17Click (Sender: TObject); procedure TvComputerContextPopup (Sender: Tobject; Mousepos: Tpoint; var handled: boolean); private {private declarations} Procedure WMSYSCOMMAND; message WM_SYSCommand

procedure WMHotkeyHandle (var Msg: Tmessage); message WM_HOTKEY; public {Public declarations} FRootNode, FCurNode: TTreeNode; FSendToNames: TStrings; TrayNotifyIcon1: TTrayNotifyIcon; HotKeyid: Integer; procedure ShowMainForm (Sender: TObject); end; var MainForm: TMainForm;

IMPLEMENTATION

Uses MultiSt, NetUtils, Sendpopupmsg, NetmonUtils, Shlobj, Lkqdialogs, Shellapi, Clipbrd;

{$ R * .dfm}

Procedure Tmainform.MMACACTIVATE (Sender: TOBJECT); Begin Frootnode: = TVComputer.Items.Add (TVComputer.topItem, 'The entire network'); frootnode.imageindex: = 0; TVComputer.Setfocus;

procedure TMainForm.TvComputerClick (Sender: TObject); var SelectedNode, Node: TTreeNode; Strs: TStrings; I: Integer; begin if TvComputer.Selected = nil then Exit; SelectedNode: = TvComputer.Selected; Strs: = TStringList.Create; try If SELECTEDNODE.LEVEL = 0 THEN Begin if SELECTEDNODE.COUNT = 0 THEN Begin getnetGroupNameList (strs); for i: = 0 to strs.count - 1 do begin node: = tvComputer.Item.Addchild (Frootnode, strs [i]) ; Node.ImageIndex: = 1; Node.SelectedIndex: = 1; end; end; end; if SelectedNode.level = 1 then begin if SelectedNode.count = 0 then begin GetComputerNameList (SelectedNode.Text, Strs); for I: = 0 to strs.count - 1 do begin node: = tvComputer.Items.addchild (SELECTEDNODE, STRS [i]); node.imageindex: = 2; node.selectedIndex: = 4; end; end; end; if SELECTEDNODE.LEVEL = 2 th en begin if FSendToNames.IndexOf (SelectedNode.Parent.Text '*') <> -1 then Exit; if FSendToNames.IndexOf (SelectedNode.Text) = -1 then FSendToNames.Add (SelectedNode.Text); EdToName.Text: = Fsendtonames.commatext; end; finally strs.free; end;

procedure TMainForm.FormCreate (Sender: TObject); begin FSendToNames: = TStringList.Create; SetWindowLong (EdToName.Handle, GWL_STYLE, GetWindowLong (EdToName.Handle, GWL_STYLE) or ES_UPPERCASE); SetWindowLong (EdFrom.Handle, GWL_STYLE, GetWindowLong (EdFrom. Handle, GWL_STYLE) or ES_UPPERCASE); TrayNotifyIcon1: = TTrayNotifyIcon.Create (Self); with TrayNotifyIcon1 do begin Icon: = Application.Icon; Hint: = Application.Title; OnDblClick: = ShowMainForm; PopupMenu: = PopupMenu1; HideTask: = False ; IconVisible: = True; end; Hotkeyid: = GlobalAddAtom ( 'UserDefineHotKey') - $ C000; RegisterHotkey (Handle, Hotkeyid, MOD_CONTROL, VK_RETURN); end; procedure TMainForm.FormDestroy (Sender: TObject); begin FSendToNames.Free; TrayNotifyIcon1 .Free; unregisterhotkey (HANDLETOM (HotKeyID); END;

Procedure TMAINFORM.BTNCLOSECLICK (Sender: TOBJECT); Begin Application.Terminate; End;

procedure TMainForm.BtnOkClick (Sender: TObject); var I, J: Integer; begin StatusBar1.SimpleText: = ''; for I: = 0 to FSendToNames.Count - 1 do begin J: = SendTextMessage (FSendToNames [I], EdFrom .Text, MemoContents.Lines.Text); if J <> 0 then StatusBar1.SimpleText: = StatusBar1.SimpleText FSendToNames [I] ''; end; if StatusBar1.SimpleText <> '' then StatusBar1.SimpleText: = StatusBar1 .Simpletext 'did not receive'; end;

procedure TMainForm.EdToNameChange (Sender: TObject); var NameList: TStrings; I: Integer; begin NameList: = TStringList.Create; try NameList.CommaText: = EdToName.Text; for I: = (FSendToNames.Count - 1) downto 0 do begin if NameList.IndexOf (FSendToNames [I]) = -1 then FSendToNames.Delete (I); end; if EdToName.Text <> FSendToNames.CommaText then begin FSendToNames.Assign (NameList); EdToName.Text: = FSendToNames. CommaText; end; finally NameList.Free; end; btnOK.Enabled: = Trim (EdToName.Text) <> ''; end; procedure TMainForm.ShareRefreshActionExecute (Sender: TObject); var List: TStrings; I: Integer; OS: Boolean; ShareInfo2Obj: TshareInfo2obj; Begin if not isnt (OS) THEN EXIT; list: = tstringlist.create; tryshares (list); lvshares.items.beginupdate; try lvshares.Items.clear; for i: = 0 to list. Count - 1 Do Begin ShareInfo2Obj: = TshareInfo2obj (list.objects [i]); i F ShareInfo2Obj <> nil dam with lvshares.items.add do begin caption: = List [i]; subsagems.add (shareInfo2obj.shi2_path); end; end; end; finally lvshares.Items.Endupdate; end; finally list. .

Procedure TMAINFORM.SHARECLOSEACTIONEXECUTE (Sender: TOBJECT); Begin IF (lvshares.Items.count = 0) or (lvshares.selected = nil) THEN EXIT; if Application.MessageBox ('Is it really going to close?', 'prompt' , MB_YESNO MB_ICONQUESTION) <> ID_YES then Exit; CloseShare (LvShares.Selected.Caption); LvShares.Items.Delete (LvShares.Selected.Index); end; procedure TMainForm.LvSharesMouseDown (Sender: TObject; Button: TMouseButton; Shift: TshiftState; x, y: integer; begin sharclosection.enabled: = (lvshares.Items.count <> 0) and (lvshars.selected <> nil); n13.enabled: = shareclosection.enabled; end;

function SelectDirectory: string; var lpItemID: PItemIDList; BrowseInfo: TBrowseInfo; DisplayName: array [0..MAX_PATH] of Char; TempPath: array [0..MAX_PATH] of Char; begin FillChar (BrowseInfo, sizeof (TBrowseInfo), # 0 ); BrowseInfo.hwndOwner: = MainForm.Handle; BrowseInfo.pszDisplayName: = @DisplayName; BrowseInfo.lpszTitle: = 'select shared directory:'; BrowseInfo.ulFlags: = BIF_RETURNONLYFSDIRS; lpItemID: = SHBrowseForFolder (BrowseInfo); if Assigned ( LPITEMID) THEN BEGIN SHGETPATHFROMIDLIST (LPITEMID, TEMPPATH); GLOBALFREEPTR (LPITEMID); ELSE Result: = ''; Result: = String (Temppath);

procedure TMainForm.TvComputerContextPopup (Sender: TObject; MousePos: TPoint; var Handled: Boolean); begin FCurNode: = TvComputer.GetNodeAt (MousePos.X, MousePos.Y); if FCurNode <> nil then N16.Enabled: = FCurNode.Level = 1;

procedure TMainForm.ShareAddActionExecute (Sender: TObject); var Name, Dir: string; begin if Sys_SelectDirectory (Self.Handle, Dir, 'select the shared directory:', True) then begin Name: = InputBox ( 'enter', 'please enter the shared name ', ExtractFileName (Dir)); AddShare (name, Dir); with LvShares.Items.Add do begin Caption: = name; SubItems.Add (Dir); end; end; end; procedure TMainForm.SessionRefreshActionExecute (Sender : TOBJECT); VAR List: tstrings; i: integer; os: boolean; sessioninfo502obj; begin102obj; begin if not isnt (OS) dam; list: = tstringlist.create; trysessions (list); lvsessions.Items.clear; For i: = 0 to list.count - 1 do begin sessioninfo502obj: = tessioninfo502obj (list.objects [i]); if sessioninfo502obj <> nil dam with lvsessions.items.add do begin caption: = List [i]; subitems .Add (sessioninfo502obj.Sesi502_username); SUBITEMS.ADD (INTTOSTR (sessioninfo502obj.Sesi502_ num_opens)); SubItems.Add (IntegerToTimeStr (SessionInfo502Obj.Sesi502_Time)); SubItems.Add (IntegerToTimeStr (SessionInfo502Obj.sesi502_idle_time)); end; end; end; finally List.Free; end; end;

procedure TMainForm.SessionCloseActionExecute (Sender: TObject); begin if (lvSessions.Items.Count = 0) or (lvSessions.Selected = nil) then Exit; if Application.MessageBox ( '? you really want to close the session', 'tips' , MB_YESNO MB_ICONQUESTION <> ID_YES THEN EXIT; CloseSession (lvsessions.selected.caption); lvsessions.tems.delete (lvsessions.selected.index);

procedure TMainForm.TrafficRefreshActionExecute (Sender: TObject); var List: TStrings; I: Integer; OS: Boolean; Traffic: TTraffic; begin if not IsNT (OS) then Exit; List: = TStringList.Create; try GetTrafficSets (List); Lvtraffic.items.beginupdate; try lvtraffic.Items.clear; for i: = 0 to list.count - 1 do beg Traffic: = tTRAFFIC (list.objects [i]); if traffic <> nil dam with lvtraffic.Items .Add do beg, = list [i]; subitems.add (traffic.mac); Subitems.add (IntestStr (Traffic.dwinOCTS)); end; end; end; end; ; finally lvTraffic.Items.EndUpdate; end; finally List.Free; end; end; procedure TMainForm.Timer1Timer (Sender: TObject); begin ShareRefreshActionExecute (nil); SessionRefreshActionExecute (nil); TrafficRefreshActionExecute (nil); FileRefreshActionExecute (nil); if lvfiles.items.count <> 0 Then ShowMainform (nil);

procedure TMainForm.FormShow (Sender: TObject); begin ShareRefreshActionExecute (nil); SessionRefreshActionExecute (nil); TrafficRefreshActionExecute (nil); FileRefreshActionExecute (nil); Timer1.Enabled: = True; end;

procedure TMainForm.FileRefreshActionExecute (Sender: TObject); var List: TStrings; I: Integer; OS: Boolean; FileInfo3Obj: TFileInfo3Obj; begin if not IsNT (OS) then Exit; List: = TStringList.Create; try GetFiles (List); Lvfiles.items.beginupdate; try lvfiles.items.clear; for i: = 0 to list.count - 1 do begin fileinfo3obj: = tfileinfo3obj (list.objects [i]); if fileinfo3obj <> nil dam with lvfiles.items.Il1 .Add do begin Caption: = List [I]; SubItems.Add (FileInfo3Obj.fi3_pathname); SubItems.Add (FileInfo3Obj.fi3_username); end; end; end; finally lvFiles.Items.EndUpdate; end; finally List.Free; end; end; procedure TMainForm.lvSessionsMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin SessionCloseAction.Enabled: = (lvSessions.Items.Count <> 0) and (lvSessions.Selected < > NIL); N15. Enabled: = sessionCloseAction.enabled;

procedure TMainForm.LvFilesMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FileCloseAction.Enabled: = (LvFiles.Items.Count <> 0) and (LvFiles.Selected <> nil); END;

ProcedureTMainform.FileCloseActionExecute (Sender: TOBJECT); Begin if (lvfiles.Items.count = 0) or (lvfiles.selected = nil) THEN EXIT; if Application.MessageBox ('Is it true to turn off the session?', 'prompt' , MB_YESNO MB_ICONQUESTION <> ID_YES THEN EXIT; Closefile (LVFiles.Selected.caption); lvfiles.Selete (lvfiles.selected.index);

Procedure tMainform.n13click (sender: Tobject); var path: string; begin if lvshares.selected <> nil dam path: = lvshares.selected.subitems [0]; shellexecute (0, 'Explore', PCHAR (PATH), nil, nil, SW_NORMAL); end; end; procedure TMainForm.N15Click (Sender: TObject); var Name: string; begin if LvSessions.Selected <> nil then begin Name: = LvSessions.Selected.SubItems [0]; Clipboard. "Astext: = Name end;

procedure TMainForm.N16Click (Sender: TObject); begin if FSendToNames.IndexOf (FCurNode.Text '*') = -1 then FSendToNames.Add (FCurNode.Text '*'); EdToName.Text: = EdToName.Text Fcurnode.text '*';

Procedure Tmainform.N19Click (Sender: TOBJECT); Begin Application.Terminate; End;

Procedure tMainform.n17click (sender: TOBJECT); Begin ShowMainform (NIL);

Procedure Tmainform.ShowMainform (Sender: TOBJECT); Begin Traynotifyicon1.hidetask: = FALSE; END

procedure TMainForm.WMSysCommand:;: = SC_MINIMIZE; inherited; if (Msg.WParam = SC_MINIMIZE) then TrayNotifyIcon1.HideTask: (var Msg TMessage) begin then Msg.WParam if (Msg.WParam = SC_CLOSE) = True; end;

procedure TMainForm.WMHotkeyHandle (var Msg: Tmessage); begin if (Msg.LParamHi = VK_RETURN) and (Msg.lparamLo = MOD_CONTROL) then begin if BtnOk.Enabled then BtnOkClick (nil); Msg.Result: = 1; end; end ;

end interface dfm file object MainForm:. TMainForm Left = 64 Top = 98 Width = 921 Height = 577 Color = clBtnFace Font.Charset = GB2312_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = 'Arial' Font.Style = [] OldCreateOrder = False WindowState = wsMaximized OnActivate = FormActivate OnCreate = FormCreate OnDestroy = FormDestroy OnShow = FormShow PixelsPerInch = 96 TextHeight = 12 object Splitter2: TSplitter Left = 0 Top = 233 Width = 913 Height = 3 Cursor = crVSplit Align = alTop end object Splitter3: TSplitter Left = 0 Top = 446 Width = 913 Height = 3 Cursor = crVSplit Align = alBottom end object StatusBar1: TStatusBar Left = 0 Top = 531 Width = 913 Height = 19 Panels = <> SimplePanel = False end object ToolBar1: Ttoolbar Left = 0 TOP = 0 width = 913 Height = 41 caption = 'Toolbar1' Taborder = 1 Visible = false Object Toolbutton1: TToolButton Left = 0 Top = 2 Caption = 'ToolButton1' ImageIndex = 0 end object ToolButton2: TToolButton Left = 23 Top = 2 Caption = 'ToolButton2' ImageIndex = 1 end end object Panel1: TPanel Left = 0 Top = 41 Width = 913 Height = 192 align = altop caption = 'panel1' Taborder = 2 Object Splitter1: Tsplitter Left = 249 TOP = 1 Width =

3 Height = 190 Cursor = crHSplit end object Splitter6: TSplitter Left = 641 Top = 1 Width = 3 Height = 190 Cursor = crHSplit end object gbxShares: TGroupBox Left = 1 Top = 1 Width = 248 Height = 190 Align = alLeft Caption = ' shared file 'TabOrder = 0 object Bevel1: TBevel Left = 2 Top = 14 Width = 244 Height = 2 Align = alTop end object LvShares: TListView Left = 2 Top = 16 Width = 244 Height = 172 Align = alClient BorderStyle = bsNone Columns = ​​ColumnClick = False RowSelect = True PopupMenu = pmShare TabOrder 0 ViewStyle = vsReport OnMouseDown = = LvSharesMouseDown end end object gbxSessions: TGroupBox Left = 252 Top = 1 Width = 389 Height = 190 Align = alLeft Caption = 'session' TabOrder = 1 object bvlSessions: TBevel Left = 2 Top = 14 Width = 385 Height = 2 Align = alTop end object Lvsessions: TListView Left = 2 TOP = 16 width = 385 Height = 172 Align = AlClient BorderStyle =

bsNone Columns = ​​ColumnClick = False RowSelect = True PopupMenu = pmSession TabOrder = 0 ViewStyle = vsReport OnMouseDown = lvSessionsMouseDown end end object GroupBox3: TGroupBox Left = 644 Top = 1 Width = 268 Height = 190 Align = AlClient Caption = 'activity file' Taborder = 2 Object Bevel2: TBevel Left = 2 TOP = 14 width = 264 height = 2 align = altop end object lvfiles: TLISTVIEW Left = 2 Top = 16 Width = 264 Height = 172 Align = alClient BorderStyle = bsNone Columns = ColumnClick = false rowselect = true popupmenu = pmfiles taborder =

0 ViewStyle = vsReport OnMouseDown = LvFilesMouseDown end end end object Panel2: TPanel Left = 0 Top = 449 Width = 913 Height = 82 Align = alBottom Caption = 'Panel2' TabOrder = 3 object gbxTraffic: TGroupBox Left = 1 Top = 1 Width = 911 Height = 80 Align = alClient Caption = 'adapter' TabOrder = 0 object bvlTraffic: TBevel Left = 2 Top = 14 Width = 907 Height = 2 Align = alTop end object lvTraffic: TListView Left = 2 Top = 16 Width = 907 Height = 62 Align = AlClient Border = BSnone Column = ​​ColumnClick = False RowSelect = True PopupMenu = pmTraffic TabOrder = 0 ViewStyle = vsReport end end end object PnlMsg: TPanel Left 0 Top = 236 Width = 913 Height = 210 Align = = AlClient Caption = 'pnlmsg' Taborder = 4 Object Splitter4: Tsplitter Left =

249 Top = 1 Width = 3 Height = 208 Cursor = crHSplit end object PnlClnt: TPanel Left = 252 Top = 1 Width = 660 Height = 208 Align = alClient BevelOuter = bvNone Caption = 'PnlClnt' TabOrder = 0 object PnlClntTop: TPanel Left = 0 Top = 0 Width = 660 Height = 68 Align = alTop BevelOuter = bvNone TabOrder = 0 object GroupBox2: TGroupBox Left = 0 Top = 0 Width = 660 Height = 68 Align = alClient Caption = 'send' TabOrder = 0 object Label1: TLABEL LEFT = 7 TOP = 15 width = 48 height = 12 caption = 'Send to:' end object label2: TLabel Left = 7 TOP = 39 width = 60 height = 12 caption = 'This machine name:' end object Edtoname: TEdit Left = 66 Top = 10 Width = 586 Height 20 Anchors = = [akLeft, akTop, akRight] TabOrder = 0 OnChange = EdToNameChange end object EdFrom: TEdit Left = 66 Top = 35 Width = 588 Height = 20 Anchors = [akLeft, Aktop, akright] taborder = 1 end end end object pnlclntbtm: tpanel left =

0 Top = 175 Width = 660 Height = 33 Align = alBottom BevelInner = bvLowered BevelOuter = bvNone TabOrder = 1 object BtnOk: TButton Left = 500 Top = 5 Width = 75 Height = 23 Anchors = [akTop, akRight] Caption = 'transmission ( & O) 'Default = True Enabled = False TabOrder = 0 end object btnClose: TButton Left = 580 Top = 5 Width = 75 Height = 23 Anchors = [akTop, akRight] Caption =' exit (& Q) 'TabOrder = 1 OnClick = BtnCloseClick end end object GroupBox1: TGroupBox Left = 0 Top = 68 Width = 660 Height = 107 Align = alClient Caption = 'content:' TabOrder = 2 object MemoContents: TMemo Left = 2 Top = 14 Width = 656 Height = 91 Align = AlClient TabOrder = 0 end end end object Panel3: TPanel Left = 1 Top = 1 Width = 248 Height = 208 Align = alLeft Caption = 'Panel3' TabOrder = 1 object TvComputer: TTreeView Left 1 Top = 1 Width = 246 Height = = 206 align = alclient images = TreeImagelist Indent = 19 Popupmenu = PMTree Readonly = true Taborder =

0 OnClick = TVComputerClick ONCONTEXTPOPUP = TVComputerContextPopup End end Object TreeImagelist: timagelist left = 168 TOP = 320 bitmap =

{494C010108000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000003000000001002000000000000030 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000

000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000 000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000

0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000 0000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000

000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000

0000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000 0000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000

00000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000F9F5F600E3CED600D1ADBB00C394A600B8859900C192A400D0ACBA00E3CE D600F9F5F6000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000007349 5A0073495A0073 495A009C757300000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000ECDE E300CFABB900BE8C9F00C090A300C091A400C091A300BD8C9F00BA869A00B781 9600CDA8B700ECDEE30000000000000000000000000000000000000000000000 0000FBD4D100F6958E00F1605500EE3B2D00EE3B2D00F1605500F6958E00FBD4 D1000000000000000000000000000000000000000000BDA6A500DECFCE00DED3 D600DECBCE00D6C3C600D6B6B500B586840073495A0000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000

0000000000 0000000000000000000000000000000000000000000000000000ECDEE400CBA4 B300C395A700C79DAE00CAA3B300CBA5B300CBA3B200C79DAD00C295A600BC8B 9E00B7829700C69CAC00ECDEE30000000000000000000000000000000000F8AA A400F0554900EE392B00EE3B2E00EE392B00ED332500ED2C1D00ED2C1D00F04F 4200F8AAA400000000000000000000000000C6AEAD00E7E7E700E7E7E700DEDF DE00DED3D600CEB2B5009C929400AD7D7B00CEA2A50073495A00000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000F9F5F600D1AFBD00C498 A900CCA5B400D2AFBD00D5B6C200D7B9C500D5B6C300D1AFBD00CBA4B400C498 A900BD8B9E00B7819600CDA8B700F9F5F6000000000000000000F8ACA600F04A 3E00F04E4100F1584C00F15B5000F0574C00F04E4100EF403200ED322300ED2C 1D00EE382900F8AAA4000000000000000000E7E7E700F7F3F700F7F3F700E7E7 E700DED7D600E7D7D600AD868400AD868400CEA6A5009C696B0000000000 9C75 730073495A000000000000000000000000000000000000000000000000000000 00000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 FF000000000000000000000000000000000000000000E4D0D800C294A600CBA5 B300D4B4C100DBC0CA00DFC8D100E2CCD400E0C8D100DBC0CA00D4B4C100CBA5 B300C294A600BA869B00B7819600E3CED60000000000FCD5D200F2645900F15B 4F00F26E6400F37B7100F3807600F37B7200F36E6300F15B4F00EF453800ED32 2300ED2C1D00F04F4200FBD4D10000000000CEB2B500F7F3F700F7EFEF00EFEB EF00D6BEBD00D6AAAD00BD797B00BD717300CEA6A5009C696B00D6B2B500D6B2 B500ADA2A5009C75730073495A00000000000000000000000000000000000000 00000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 FF000000000000000000000000000

000000000000000D4B4C000C79EAD00D2AF BC00DBC0CA00E3CFD700EBDAE100EDE0E500EADAE100E4CFD700DBC0CB00D2B0 BD00C79DAD00BD8C9F00B7819600D0ACBA0000000000F79F9900F15B5000F376 6D00F58D8400F69C9400F7A19A00F69C9400F58D8400F3776D00F05B4F00EF40 3200ED2C1D00ED2C1D00F6958E000000000000000000DEB6B500F7CB9C00D69A 9C00C68E8C00C6757300C66D6B00CE696B00DECBCE00DEC3C600DEBABD00D6A2 A500B59E9C00B59E9C00ADA2A50073495A000000000000000000000000000000 00000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 FF000000000000000000000000000000000000000000C89FB000CAA2B200D6B6 C200DFC9D200EBDBE000F4EBEE00F8F2F400F4EBEE00EADBE100DFC8D100D5B7 C300CAA3B200C090A300B8829700C192A40000000000F37A7000F36E6400F58D 8500F7A6A000F9BCB700FAC4C000F9BCB700F7A7A100F48D8500F36F6400F04E 4200EE332500ED2C1D00F16055000000000000000000D6AEAD00FFA21000FFAA 2100FFB64A00DEAAAD00C66D6B00B5696B00DEC3C600CE9E9C00D6A2A500D6B2 B500AD8684009C696B00B592940073495A0 00000000000000000000000000000 00000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 FF000000000000000000000000000000000000000000C294A400CBA5B300D7B9 C500E1CCD400EDDFE500F8F3F40000000000F8F2F400EDE0E400E2CBD400D7B9 C500CBA5B300C192A300B8849700B883980000000000F1635900F37A7200F69B 9400F9BCB700FBD9D600FCE7E400FBD9D600F9BCB700F69C9500F37B7200F057 4B00EE392B00ED2C1D00EE3B2D000000000000000000D6B2B500FFB63100FFB6 3900FFBA3900FFBA3900FFB63900EFB66B00CE797B00DEAAAD00DEBABD00CEAA AD00BD8E8C00AD7D7B00B586840073495A000000000000000000000000000000 00000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 FF000000000000000000000000000000000000000000C99FAF00CBA3B200D6B6 C300

E0C8D200EADBE100F3EBEE00F7F2F400F4EBEE00EADBE100E0C8D200D5B6 C300CAA2B200BF90A300B8829700C192A40000000000F2675C00F47F7700F6A0 9A00F9C5C100FCE6E500FEFEFE00FDE6E400F9C5C100F6A19A00F37F7600F15B 4F00EE3B2E00ED2C1D00EE3B2D000000000000000000CEA6A500FFBE4A00FFC3 5200FFC75200FFC75A00FFC35200FFBE4A00FFBA4200CE696B00DEBABD00D6A2 A500BD8E8C00CE9A9C00B582840073495A000000000000000000000000000000 00000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 FF000000000000000000000000000000000000000000D4B4C000C79DAD00D2AF BD00DBC0CB00E4CFD700EBDBE100EDE0E500EADBE000E4CFD700DBC0CB00D1B0 BD00C79DAD00BD8C9F00B7819600D0ACBA0000000000F4817800F47B7200F69B 9400F9BCB700FBD9D700FCE6E500FBDAD700F9BCB700F69C9400F37B7200F057 4C00EE392B00ED2C1D00F16055000000000000000000C6A28400FFCB5A00FFCF 6B00FFD36B00FFD36B00FFCF6B00FFCB6300FFC35200CE828400DEBABD00D6A2 A500BD8A8C00AD7D7B00AD75730073495A000000000000000000000000000000 00000000FF 000000FF000000FF000000FF000000FF000000FF000000FF000000 FF000000000000000000000000000000000000000000E5D0D800C294A600CBA5 B400D4B4C100DBC0CB00E0C8D100E1CBD400E0C8D100DBC0CB00D4B4C000CCA5 B400C295A700BA869A00B7819600E3CED60000000000F7A6A000F26E6400F48C 8500F7A7A100F8BCB700F9C4C100F9BCB700F7A6A000F58D8500F36E6400F04E 4100ED342500ED2C1D00F6958E0000000000D6B6B500DEA67300FFD37300FFDB 7B00FFDF8400FFDF8C00FFDB8400FFD77B00FFCB6300CE969400DEBABD00D6A2 A500BD8E8C00C68E8C00B582840073495A000000000000000000000000000000 00000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 FF000000000000000000000000000000000000000000F9F5F600D1AFBD00C498 A900CBA5B400D2AFBD00D6B6C200D7B9C400D6B6C300D1B0BD

00CBA5B400C498 A900BD8B9E00B7819600CDA8B700F9F5F60000000000FCD8D500F3766C00F377 6D00F58D8400F69C9500F7A09A00F69B9400F48D8500F3776D00F15B5000EF40 3300ED2C1D00F04F4200FBD4D10000000000D6B6B500FFD37300FFDF8400FFE3 9400FFEB9C00FFEBA500FFE79C00FFE38C00FFD77B00D6AEAD00DEBABD00CE96 9400C6757300AD6D6B00AD75730073495A000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000ECDEE400CBA4 B300C294A600C89DAD00CAA3B200CBA4B400CBA3B200C79DAE00C394A700BD8B 9E00B7829700C69CAC00ECDEE300000000000000000000000000F9B4AF00F264 5A00F26E6400F47B7100F37F7600F37B7100F26E6400F15B4F00EF453800ED32 2300EE382900F8AAA4000000000000000000F7EFEF00FFDB7B00FFE39400FFEF AD00FFF3B500FFF7BD00FFF3AD00FFEB9C00FFDF8C00E7C3C600EFDBDE00FFFB FF00DEAAAD00CE696B00CE6D6B0073495A000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000 00000000 000000000000000000000000000000000000000000000000000000000000ECDE E300CFACBA00BE8C9F00C090A200C191A400C090A300BE8C9F00BB869B00B781 9600CDA8B700ECDEE3000000000000000000000000000000000000000000F8B2 AD00F26A6100F1574B00F15B5000F0584C00F04E4100EE403200ED312300F04F 4200F8AAA400000000000000000000000000EFEBEF009C929400BD9E9400D6C3 AD00FFFFCE00FFFFCE00FFFBC600FFEFAD00EFC78C00EFCFCE00EFCFCE00EFCF CE00EFCFCE00D6AEAD00D6AEAD00000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000F9F5F600E3CED600D0AEBB00C294A600B9849A00C192A400D0ACBA00E3CE D600F9F5F6000000000000000

000000000000000000000000000000000000000 0000FBD5D300F69C9500F26B6100EF473A00EF413300F1605500F6958E00FBD4 D10000000000000000000000000000000000D6B6B500D6B6B500C6BABD00DED3 D600DECBCE00BDA6A500AD868400B59A8C00C6A28400BD929400000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000D6B6B500D6B6B500D6B6B500D6B6B50000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000 000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000 0000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600000000000000000000000000000000000000000000000000000000000000 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF 0000000000000000000000000000000000000000000000000000000000000000 0000FF000000FF000000FF000000FF000000FF000000FF

000000FF000000FF00 0000000000000000000000000000000000000000000000000000000000000000 0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00000000000000000000000000000000000000000000000000000000000000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600000000000000000000000000000000000000000000000000000000000000 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF 0000000000000000000000000000000000000000000000000000000000000000 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 0000000000000000000000000000000000000000000000000000000000000000 0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00000000000000000000000000000000000000000000000000000000000000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600000000000000000000000000000000000000000000000000000000000000 000000FF000000FF000000FF000000FF000000FF000000FF0000 00FF000000FF 0000000000000000000000000000000000000000000000000000000000000000 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 0000000000000000000000000000000000000000000000000000000000000000 0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00000000000000000000000000000000000000000000000000000000000000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600000000000000000000000000000000000000000000000000000000000000 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF 0000000000000000000000000000000000000000000000000000000000000000 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 000000000000000000000

0000000000000000000000000000000000000000000 0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00000000000000000000000000000000000000000000000000000000000000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600000000000000000000000000000000000000000000000000000000000000 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF 0000000000000000000000000000000000000000000000000000000000000000 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 0000000000000000000000000000000000000000000000000000000000000000 0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00000000000000000000000000000000000000000000000000000000000000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600000000000000000000000000000000000000000000000000000000000000 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF 000000000000000000000000000 0000000000000000000000000000000000000 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 0000000000000000000000000000000000000000000000000000000000000000 0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00000000000000000000000000000000000000000000000000000000000000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600000000000000000000000000000000000000000000000000000000000000 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF 0000000000000000000000000000000000000000000000000000000000000000 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 0000000000000000000000000000000000000000000000000000000000000000

0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00000000000000000000000000000000000000000000000000000000000000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600000000000000000000000000000000000000000000000000000000000000 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF 0000000000000000000000000000000000000000000000000000000000000000 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 0000000000000000000000000000000000000000000000000000000000000000 0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000 0000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000

0000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000 0000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 2800000040000000300000000100010000000000800100000000000000000000 000000000000000000000000FFFFFF0000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000FFFFF007FFFFE1FFFFFFE003F00F807F FFFFC001E007003FFFFF8000C0030027F00F800080010001F00F800080018000 F00F800080018000F

00F810080018000F00F800080018000F00F800080018000 F00F800080010000F00F800080010000FFFFC001C0030000FFFFE003E0070001 FFFFF007F00F003FFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF00FF00FF00FF00FF00F F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F F00FF00FF00FF00FF00FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 000000000000} end object pmShare: TPopupMenu Images = NetImageList Left = 48 Top = 136 object N1: TMenuItem Action = ShareRefreshAction end object N4: TMenuItem Caption = '-' end object N2: TMenuItem Action = ShareCloseAction end object N3: TMENUITEM ACTION = Shareaddaction End Object N12: TMENUIIIIIIIIIIIIIT N13: TMENUITEM CAPTION = 'Opening Directory' OnClick = N13Click End Object PMSession: TPopupM enu Images = NetImageList Left = 144 Top = 136 object N5: TMenuItem Action = SessionRefreshAction end object N6: TMenuItem Caption = '-' end object N7: TMenuItem Action = SessionCloseAction end object N14: TMenuItem Caption = '-' end object N15: TMenuItem Caption = 'copying name' Enabled = False OnClick = N15Click end end object pmTraffic: TPopupMenu Images = NetImageList Left = 81 Top = 136 object N8: TMenuItem Action = TrafficRefreshAction end end object ActionList1: TActionLis

t Images = NetImageList Left = 84 Top = 98 object ShareRefreshAction: TAction Category = 'Share' Caption = 'refresh' ImageIndex = 0 OnExecute = ShareRefreshActionExecute end object ShareAddAction: TAction Category = 'Share' Caption = 'New Shared' ImageIndex = 1 OnExecute = ShareAddActionExecute end object ShareCloseAction: TAction Category = 'share' Caption = 'stop sharing' Enabled = False ImageIndex = 2 OnExecute = ShareCloseActionExecute end object SessionRefreshAction: TAction Category = 'Session' Caption = 'refresh' ImageIndex = 0 OnExecute = SessionRefreshActionExecute end object SessionCloseAction: TAction Category = 'session' Caption = 'Close session' Enabled = False ImageIndex = 1 OnExecute = SessionCloseActionExecute end object TrafficRefreshAction: TAction Category = 'Traffic' Caption = 'refresh' ImageIndex = 0 OnExecute = TrafficRefreshActionExecute end object FileRefreshAction: TAction Category = 'Files' Caption = 'refresh' ImageIndex = 0 OnExecute = FileRefreshActionExecute end object FileCloseAction: TAction Category = 'Files' Caption = 'Close the active file' Enabled = False ImageIndex = 2 OnExecute = FileCloseActionExecute End end Object NetImageList: Timagelist Left = 124 TOP = 98 B

itmap = {494C010103000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000001000000001002000000000000010 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000C8C8C8FFF7F7F7FF0000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000C8C8C8FFF7F7F7FF0000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400C6C6C600C6C6 C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 C600C6C6C600000000000000000000000000ACB9ACFF11B227FF0C9D1BFF156E 19FF5F715FFFBEBEBEFFF4F4F4FF000000000000000000000000000000000 000 000000000000000000000000000000000000C0B1B0FFD16E3DFFC15B37FF9244 37FF7A6565FFBEBEBEFFF4F4F4FF000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF FF0084E7E700FFFFFF0084E7E70000A5420084E7E700FFFFFF0084E7E700FFFF FF00C6C6C60000000000000000000000000091A191FF18992EFF15B82CFF13B8 2CFF14B82BFF13B82AFF0DA51EFF0E7713FF536A53FFB7B7B7FFF0F0F0FF0000 000000000000000000000000000000000000AC9797FFD0703FFFD06E3FFFCF6D 3DFFCE6C3CFFD06C3BFFC76138FFA14534FF775A5BFFB6B6B6FFF0F0F0FF0000 00000000000000000000000000

00000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF0084E7 E700FFFFFF0084E7E70000A5420000A54200FFFFFF0084E7E700FFFFFF0084E7 E700C6C6C600000000000000000000000000769976FF39BF6AFF26BD3CFF1CB9 32FF13B72AFF14B72BFF15B82CFF15B82CFF14B72BFF13B82BFF0FAD23FF067F 0CFF00000000000000000000000000000000AD8583FFCC6D40FFD0703FFFD06D 3FFFCE6C3EFFCF6D3CFFCF6D3DFFCF6D3DFFCE6C3CFFCF6B3BFFCD6639FFA742 30FF000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF FF0084E7E70000A5420000A5420000A5420000A5420000A5420084E7E700FFFF FF00C6C6C6000000000000000000000000005B8B5BFF49D380FF4BC95DFF41C4 54FF39C34CFF32C146FF1BB931FF14B72BFF15B82CFF15B82CFF15B82CFF0BAB 1DFFB3D2B3FF00000000000000000000 0000A07270FFCA7655FFD37B50FFD175 48FFCF6E3EFFD06D3DFFCF6C3CFFCF6D3DFFCF6D3DFFCF6D3DFFCF6D3DFFC761 36FF000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF0084E7 E700FFFFFF0084E7E70000A5420000A54200FFFFFF0084A500008463000084E7 E700C6C6C600000000000000000000000000448249FF52D283FF36A141FF65D0 74FF5DCC6CFF54C965FF4BC85CFF42C555FF12B62AFF15B82CFF15B82CFF0BA9 1CFF30B63CFF0000000000000000000000009B6561FFC77960FFDC946FFFDA8D 68FFD78861FFD6845CFFD17649FFCE6C3EFFCF6D3DFFCF6D3DFFCF6D3DFFC963 35FF000000000000000000000000000000000000000000000000000000000000 0

000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF FF0084E7E700FFFFFF0084E7E70000A5420084E7E700FFFFFF0084630000FFFF FF00C6C6C6000000000000000000000000002F8936FF5DD48BFF37AB57FF8DDC 98FF82D88EFF7AD687FF70D37EFF65D076FF5DCD6DFF47C658FF11B62AFF0AA8 1AFF3BC247FFEFF4EFFF0000000000000000AE615AFFC07766FFE1A98BFFE1A2 85FFDF9E7EFFDC9775FFDA936EFFD88862FFCE6D3CFFCF6D3CFFCF6D3DFFC661 35FF000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF0084E7 E7008463000084E7E700FFFFFF0084E7E700FFFFFF0084E7E7008463000084E7 E700C6C6C60000000000000000000000000021862CFF6AD793FF69D994FFB6EA BCFFABE5B3FFA0E2A9FF97DFA1FF8DDC98FF82D88EFF7AD587FF70D37EFF61C6 6BFF67CF71FF30A037FF0000000000000000AF5D55FFC58375FFE8BEA8FFE8B7 A1FFE6B 399FFE3AE93FFE1A88CFFDFA383FFDF9E7FFFD27447FFCE6B3BFFC35F 33FF000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF FF0084630000FFFFFF0084E7E70000A5420084E7E700FFFFFF0084E7E700FFFF FF00C6C6C600000000000000000000000000268C34FF77DA9CFF73DA9AFF73DB 9BFF52BD73FF39A54FFF54AA5CFFB6E9BCFFA9E3B1FFA0E2A9FF97DFA1FF86D3 8EFF96DE9CFF91DD98FF0000000000000000B4685EFFC38376FFEFD1C2FFEECC BBFFEBC7B5FFEBC1ADFFE9BCA8FFE6B8A1FFE6B39AFFE4AC91FFE2A88CFFD898 7EFFF3F0F0FF0000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000

00000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF0084E7 E7008463000084A50000FFFFFF0000A5420000A5420084E7E700FFFFFF0084E7 E700C6C6C600000000000000000000000000389846FF85DDA5FF82DDA3FF7DDC A1FF7ADA9FFF78DB9BFF73DA99FF5BC47DFFBFEAC4FFC8EFCDFFBEEDC5FFAEE1 B4FFB5E8BAFFADE5B3FF64A865FF00000000BE7B71FFF7DAC9FFDBAA9BFFC685 76FFC6867AFFECCCBDFFEED0C1FFEECCBBFFEBC7B5FFEBC1ADFFE9BDA8FFE1B1 9CFFEEE1E0FF0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF FF0084E7E70000A5420000A5420000A5420000A5420000A5420084E7E700FFFF FF00C6C6C6000000000000000000000000004DA55BFF92E0ADFF8FE0AAFF8CDF A8FF89DDA6FF86DEA4FF81DDA2FF7FDBA1FF7EDCA1FF79DD9FFF73DA9AFF176F 1CFF9ABB99FF64A866FF66B26AFF00000000C99085FFF8E0D1FFF6DAC9FFF4D4 C3FFF2CDBBFFE4B5A1FFDBB0A6FFF3DACFFFF4DCCFFFF2D7C9FFE FD1C2FFE8C5 B6FFD9B7B5FF0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF0000A5420000A5420084E7E700FFFFFF00C6C6 C600C6C6C600000000000000000000000000308D38FF9DE3B5FF9BE1B2FF98E2 B2FF95E1B0FF8EDDAAFF84D59EFF86D9A2FF88DCA6FF86DDA6FF83DEA5FF2673 2CFF00000000000000000000000000000000B76D65FFFAE6D9FFF9E2D4FFF7DC CCFFF5D7C6FFF0CCBBFFEABDAAFFECBDA9FFECBBA3FFE7AE95FFCE8873FF9848 3FFFE8DAD9FF0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000

000000000000000000000084848400FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF0000A5420084E7E700FFFFFF00000000000000 000000000000000000000000000000000000D1D5D1FF9BDAAEFFA3E2B8FFA2E4 B9FF9CDFB2FF3D793EFF0000000000000000CFD2CFFF90A390FF588A59FF95AA 95FF00000000000000000000000000000000D8D2D1FFF3DED1FFF9E6D9FFF8E3 D6FFF5DACBFF935A58FF0000000000000000D4D0D0FFAD9797FFA16F6DFFB49E 9EFF000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF0084E7E700FFFFFF0084E7E70084848400FFFF FF00000000000000000000000000000000000000000000000000D7DDD7FF9EBA 9EFF8AB58BFF0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000DFD9D9FFC6AB AAFFC79F9DFF0000000000000000000000000000000000000000000000000000 0000000000000000000000000000 000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000084848400848484008484

8400848484008484840084848400848484008484840084848400848484000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 2800000040000000100000000100010000000000800000000000000000000000 000000000000000000000000FFFFFF0080039FFF9FFF0000800301FF01FF0000 8003001F001F00008003000F000F000080030007000F000080030007000F0000 80030003000F000080030003000F000080030003000700008003000100070000 80030001000700008003000F000700008003030F030F00008007C7FFC7FF0000 800FFFFFFFFF0000801FFFFFFFFF000000000000000000000000000000000000 000000 000000} end object Timer1: TTimer Enabled = False Interval = 10000 OnTimer = Timer1Timer Left = 409 Top = 483 end object pmFiles: TMenuItem Action = FileRefreshAction end object N10:: TPopupMenu Images = NetImageList Left 185 Top = 136 object N11 = TMenuItem Caption = '-' end object N9: TMenuItem Action = FileCloseAction end end object pmTree: TPopupMenu Left = 113 Top = 136 object N16: TMenuItem Caption = 'present workgroup added transmission list' Enabled = False OnClick = N16Click end end object PopupMenu1: TPopupMenu Left = 716 TOP = 337 Objec

转载请注明原文地址:https://www.9cbs.com/read-83768.html

New Post(0)