⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utils.pas

📁 DarkMoon v4.11 (远程控制) 国外收集的代码,控件下载: http://www.winio.cn/Blogs/jishuwenzhang/200712/20071208230135.
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Utils;

interface
uses Windows,winsock, wininet ,TlHelp32, MMSystem,ShellApi,WinSvc;
function BorrarArchivo( s : String ): integer;
function FindChar(Word: string;char : string):integer  ;
function FindNChars(Word: string;char : string):integer  ;
function GetCPUSpeed: Double;
function LocalIP: string;
function FileExists( s : String ): Boolean;
function StrToInt64(const S: string): Int64;
function BuffToStr( const b : Array of Char ) : string;
function StrToInt(const S: string ): Integer;
function StrPas(const Str: PChar): string;
function IntToStr(Value: Integer): string;
function StrPCopy(Dest: PChar; const Source: string): PChar;
function SigFrmToStr(Value: Integer; FormatStr : PChar): string;
function UnSigFrmToStr(Value: Cardinal; FormatStr : PChar): string;
 function StrToIntDef(const S: string; Default: Integer): Integer;
function UpperCase( S :String ): String ;
function LowerCase(const S: string): string;
function Time : string;
function ddate : string;
function GetFileName (text : string):string;
function Usuario: String;
function Trim(const S: string): string;

function stringtochar(st : string) : char;
function StrPos(const Str1, Str2: PChar): PChar; assembler;
 function split (text : string;char : string; num : integer):string;
    function Replace(strSource:string; strToFind:string; strReplace:string): string;
function HexToInt(s: string): Longword;
function GenerarRandomString: String;
function Ocurrencias( const ss, s: String ): Integer;
implementation

function FindChar(Word: string;char : string):integer  ;
var
      i : integer ;
     begin

      for i:= 1 to  Length(Word) do begin
         if  (copy(Word,i,1)=char ) then begin
            result:=i;
            exit;
         end;
      end;

 end;
    ///////////////////////////////////////////////////////////////////////////////

   function FindNChars(Word: string;char : string):integer  ;
        var i, r : integer  ;
       begin
            r:=0;
           for i:=1 to Length(Word) do begin
            if  (copy(Word,i,1)=char ) then begin
              inc(r);
            end;


           end;
           result:=r;
       end;
    ///////////////////////////////////////////////////////////////////////////////



function StrLCopy(Dest, Source: PChar; MaxLen: Cardinal): PChar; assembler;
asm
        PUSH    EDI
        PUSH    ESI
        PUSH    EBX
        MOV     ESI,EAX
        MOV     EDI,EDX
        MOV     EBX,ECX
        XOR     AL,AL
        TEST    ECX,ECX
        JZ      @@1
        REPNE   SCASB
        JNE     @@1
        INC     ECX
@@1:    SUB     EBX,ECX
        MOV     EDI,ESI
        MOV     ESI,EDX
        MOV     EDX,EDI
        MOV     ECX,EBX
        SHR     ECX,2
        REP     MOVSD
        MOV     ECX,EBX
        AND     ECX,3
        REP     MOVSB
        STOSB
        MOV     EAX,EDX
        POP     EBX
        POP     ESI
        POP     EDI
end;
  ///////////////////////////////////////////////////////////////////////////////

function StrPCopy(Dest: PChar; const Source: string): PChar;
begin
  Result := StrLCopy(Dest, PChar(Source), Length(Source));
end;
   ///////////////////////////////////////////////////////////////////////////////

//Devuelve una cadena en formato numerico de un valor para Signed 32 bits
function SigFrmToStr(Value: Integer; FormatStr : PChar): string;
var
  Poinx : Pointer;
  wsprintfX : function (Output: PChar; Format: PChar; Value : Integer): Integer; cdecl;
  hdllib : HINST;
  retmp : Integer;
begin
  hdllib := LoadLibrary('User32.dll');   {Carga la libreria}
  if hdllib <> 0 then begin
     Poinx := GetProcAddress(hdllib, 'wsprintfA');
     if Poinx <> nil then begin
        @wsprintfX := Poinx;
        SetLength(Result, 15);
        retmp := wsprintfX(PChar(Result), FormatStr, Value);
        SetLength(Result, retmp);
     end;
  FreeLibrary(hdllib);
  end;
end;


  function StrPos(const Str1, Str2: PChar): PChar; assembler;
asm
        PUSH    EDI
        PUSH    ESI
        PUSH    EBX
        OR      EAX,EAX
        JE      @@2
        OR      EDX,EDX
        JE      @@2
        MOV     EBX,EAX
        MOV     EDI,EDX
        XOR     AL,AL
        MOV     ECX,0FFFFFFFFH
        REPNE   SCASB
        NOT     ECX
        DEC     ECX
        JE      @@2
        MOV     ESI,ECX
        MOV     EDI,EBX
        MOV     ECX,0FFFFFFFFH
        REPNE   SCASB
        NOT     ECX
        SUB     ECX,ESI
        JBE     @@2
        MOV     EDI,EBX
        LEA     EBX,[ESI-1]
@@1:    MOV     ESI,EDX
        LODSB
        REPNE   SCASB
        JNE     @@2
        MOV     EAX,ECX
        PUSH    EDI
        MOV     ECX,EBX
        REPE    CMPSB
        POP     EDI
        MOV     ECX,EAX
        JNE     @@1
        LEA     EAX,[EDI-1]
        JMP     @@3
@@2:    XOR     EAX,EAX
@@3:    POP     EBX
        POP     ESI
        POP     EDI
end;

    ///////////////////////////////////////////////////////////////////////////////

 function split (text : string;char : string; num : integer):string;
 var
 Data : string;
 Temp: string;
 TmpDada ,COMD, PARM1 ,PARM2 : string ;
 i : integer;
begin
Data:=text;
     TmpDada:= copy(Data,1,length(Data));
         for i := 0 to findnchars(text,char)  do begin

   COMD:=copy(TmpDada,1,FindChar(TmpDada,char)-1);
   TmpDada:= copy(TmpDada,length(COMD)+1+1,length(TmpDada) );
               if i = num then begin
             Result:=COMD;
             exit;
               end;
           end;
end;


      function Replace(strSource:string; strToFind:string; strReplace:string): string;
    var sresult:string; i:integer;
    begin
    i:=1;
    while i<=length(strSource) do
    begin
    if copy(strSource,i,length(strToFind)) = strToFind then
    begin
    sresult := sresult + strReplace;
    i:=i+length(strToFind);
    end
    else
    begin
    sresult := sresult + copy(strSource,i,1);
    i:=i+1;
    end;
    end;
    result := sresult
    end;

   ///////////////////////////////////////////////////////////////////////////////

  function GetLocalPath:string;
    var
   i,a : integer;
   data : string;
  begin

     i:= findNchars(ParamStr( 0 ),'\');

      for a:= 0 to i-1 do begin
        data:=data   + split( ParamStr( 0 ),'\',a) + '\';

      end;

     result:=data;

  end;



function GetFileName (text : string):string;
  var
  a,i : integer;
  begin
  a:= FindNChars(text,'\');

  for i := 1 to a  do begin
  text:=copy ( text, findchar(text,'\')+1,length(text));
  end;
     
  Result:=text;
  end;


  function BuffToStr(const b: Array of Char ) : string;
var i : Integer;
begin
     for i := Low( b )to High( b ) do
         Result := Result + b[ i ];
end;

 ///////////////////////////////////////////////////////////////////////////////

function IntToStr(Value: Integer): string;
begin
   Result := SigFrmToStr(Value, PChar('%d'));
end;
   ///////////////////////////////////////////////////////////////////////////////

function StrToInt(const S: string ): Integer;
var  E: Integer;
begin
     Val(S, Result, E);
end;
  ///////////////////////////////////////////////////////////////////////////////

function StrPas(const Str: PChar): string;
begin
  Result := Str;
end;
   ///////////////////////////////////////////////////////////////////////////////

 function StrToIntDef(const S: string; Default: Integer): Integer;
var
  E: Integer;
begin
  Val(S, Result, E);
  if E <> 0 then Result := Default;
end;

//System's date & time.
function ddate : string;
var  datestr  : string;
     retsize : integer;
begin
     setlength(datestr,128);
     retsize := GetDateFormat( LOCALE_SYSTEM_DEFAULT,
                               LOCALE_NOUSEROVERRIDE and DATE_LONGDATE,
                               nil,
                               'ddd_MMM_dd_yyyy',
                               PChar(datestr),
                               128);
     setlength(datestr, retsize - 1);
     Result := datestr ;
end;
  ///////////////////////////////////////////////////////////////////////////////

function Time : string;
var  timestr : string;
     retsize : integer;
begin
     setlength(timestr, 128);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -