|
用delphi实现冰河的远程屏幕操作功能(7) Result := sl.Text; sl.Free; end;
function TServerForm.Get_Drive_List: string; var DriveBits : integer; i : integer; begin Result := ''; DriveBits := GetLogicalDrives; for i := 0 to 25 do begin if (DriveBits and (1 shl i)) <> 0 then Result := Result + Chr(Ord('A') + i) + ':\' + #13#10; end; end;
function TServerForm.GetDirectory(const PathName: string): string; var DirList : TStringList; CommaList : TStringList; sr : TSearchRec; s : string; dt : TDateTime; begin DirList := TStringList.Create; CommaList := TStringList.Create;
if FindFirst(PathName, faAnyFile, sr) = 0 then repeat CommaList.Clear; s := sr.Name; if (s = '.') or (s = '..') then continue;
if (sr.Attr and faDirectory) <> 0 then s := s + '\'; CommaList.Add(s); s := Format('%1.0n', [sr.Size+0.0]); CommaList.Add(s); dt := FileDateToDateTime(sr.Time); s := FormatDateTime('yyyy-mm-dd hh:nn ampm', dt); CommaList.Add(s);
DirList.Add(CommaList.CommaText); until FindNext(sr) <> 0; FindClose(sr);
Result := DirList.Text;
CommaList.Free; DirList.Free; end;
function TServerForm.GetFile(const PathName: string): string; var fs : TFileStream; begin fs := TFileStream.Create(PathName, fmOpenRead or fmShareDenyWrite); SetLength(Result, fs.Size); fs.Read(Result[1], fs.Size); fs.Free; end;
procedure TServerForm.CloseWindow(const Data: string); var sl : TStringList; i : integer; hw : THandle; begin sl := TStringList.Create; EnumWindows(@EnumWinProc, integer(sl)); i := sl.IndexOf(Data); if i<>-1 then begin hw := THandle(sl.Objects[i]);
SendMessage(hw, WM_CLOSE, 0, 0);
Sleep(SleepTime); SendMsg(MSG_PROCESS_LIST, Get_Process_List, CurSocket); end; sl.Free; end;
procedure TServerForm.KillWindow(const Data: string); var sl : TStringList; i : integer; hw : THandle;
|