亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fmxutils.pas

?? 該程序用D5編譯
?? PAS
字號:
unit FmxUtils;

interface

uses SysUtils, Windows, Classes, Consts,ShlObj;

type
  EInvalidDest = class(EStreamError);
  EFCantMove = class(EStreamError);

  type OSType=(osUnknown,osWin9x{osWin95,osWin98,osWin98se,osWinme},osWinnt4,osWin2k,osWinxp);

//procedure CopyFile(const FileName, DestName: string);
//procedure MoveFile(const FileName, DestName: string);
function GetFileSize(const FileName: string): LongInt;
function FileDateTime(const FileName: string): TDateTime;
function HasAttr(const FileName: string; Attr: Word): Boolean;
function ExecuteFile(const FileName, Params, DefaultDir: string;
  ShowCmd: Integer): THandle;
function GetFileIconIndex(FileName:string):integer;{ 獲取圖標(biāo)的序號函數(shù) }
function GetDirectorySize(path: string): Integer;{文件夾大小}

//Copy the file use shell
function Win_CopyFile(fFROM,fTO:String):boolean;
//Delete the file use shell
function Win_DelFile(DelFile:String):boolean;

procedure GetFileProperty(f:string; handle: THandle);
procedure CopyToClipBoard(FileName:string; Handle: THandle);

function IsLegalIP(IP:string):boolean;

function GetOSVersion : OSType;

function ShowSearchHostDialog: boolean;

implementation

uses Forms,  ActiveX, ComObj, CommCtrl, ShellAPI,FileCtrl;

const
  SInvalidDest = 'Destination %s does not exist';
  SFCantMove = 'Cannot move file %s';

//zw
function GetFileIconIndex(FileName:string):integer;{ 獲取圖標(biāo)的序號函數(shù) }
var
  Ext:String;
  FileInfo: TSHFileInfo;
begin
  Ext:=FileName;
  {Result:=}ShGetFileInfo(Pchar(Ext), 0, FileInfo,SizeOf(FileInfo),
          SHGFI_SMALLICON {or SHGFI_LARGEICON} or SHGFI_SYSICONINDEX or SHGFI_TYPENAME);
  Result:=FileInfo.iIcon;  { 返回獲取的圖標(biāo)序號 }
end;

{ GetFileSize function }
{
  Returns the size of the named file without opening the file.  If the file
  doesn't exist, returns -1.
}

function GetFileSize(const FileName: string): LongInt;
var
  SearchRec: TSearchRec;
begin
  try
    if FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec) = 0 then
      Result := SearchRec.Size
    else Result := -1;
  finally
    SysUtils.FindClose(SearchRec);
  end;
end;

function FileDateTime(const FileName: string): System.TDateTime;
begin
  Result := FileDateToDateTime(FileAge(FileName));
end;

function HasAttr(const FileName: string; Attr: Word): Boolean;
var
 FileAttr: Integer;
begin
  FileAttr := FileGetAttr(FileName);
  if FileAttr = -1 then FileAttr := 0;
  Result := (FileAttr and Attr) = Attr;
end;

function ExecuteFile(const FileName, Params, DefaultDir: string;
  ShowCmd: Integer): THandle;
{var
  zFileName, zParams, zDir: array[0..79] of Char; }
begin
  {Result := ShellExecute(Application.MainForm.Handle, nil,
    StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
    StrPCopy(zDir, DefaultDir), ShowCmd); }
  Result := ShellExecute(Application.MainForm.Handle, nil,
    pchar(FileName),pchar(Params),pchar(DefaultDir), ShowCmd);
end;

//Copy the file use shell
function Win_CopyFile(fFROM,fTO:String):boolean;
var
  FData : TShFileOpStruct;
begin
   fTo:=fTo+#0#0;
   fFrom:=fFrom+#0#0;
   Fdata.pFrom := PChar(fFrom);
   fdata.pTo := PChar(fTo);
   fdata.wFunc := FO_COPY ;
   FData.Wnd := application.Handle ;
   fData.lpszProgressTitle := '正在復(fù)制';
   fData.fFlags := FOF_ALLOWUNDO OR FOF_NOCONFIRMMKDIR;// or FOF_SILENT ;
   result:=ShFileOperation( FData ) = 0  ;
end;

function Win_DelFile(DelFile:String):boolean;
var
  FData : TShFileOpStruct;
begin

  DelFile := DelFile + #0#0;
  With FData do
  begin
    Wnd:=0;
    wFunc:=FO_DELETE;
    pFrom:=Pchar(DelFile);
    pTo:=nil;
    fFlags:=FOF_ALLOWUNDO; //+FOF_NOCONFIRMATION+FOF_NOERRORUI;//標(biāo)志表明允許恢復(fù),無須確認(rèn)并不顯示出錯信息
    hNameMappings:=nil;
    lpszProgressTitle:='正在刪除...';
    fAnyOperationsAborted:=False;
  end;
  result:=SHFileOperation(FData) = 0;

end;

//彈出屬性對話框
procedure GetFileProperty(f:string; handle: THandle{just use form's handle});
var SEI:PSHELLEXECUTEINFOA;
begin
   getmem(sei,sizeof(sei^));
   With SEI^ do
   begin
     cbSize := sizeof(SEI^);
     fMask := SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI;
     wnd := handle;
     lpVerb := 'properties';
     lpFile :=pchar(f);  //你自己的文件名
     lpParameters := nil;
     lpDirectory := nil;
     nShow := 0;
     hInstApp := hInstance;
     lpIDList := nil;
   End;
 ShellExecuteEX(SEI);
 freemem(sei);
end;

function GetDirectorySize(Path: String): Integer; //eg. Path = 'c:\temp\'
var
  SR: TSearchRec;
begin
  Result := 0;
  if path[length(path)]<>'\' then path:=path+'\';
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
  begin
    if (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr = faDirectory) then
      Result := Result + GetDirectorySize(Path+Sr.Name+'\')
    else
      Result := Result + Sr.Size;
    while FindNext(sr) = 0 do
      if (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr = faDirectory) then
        Result := Result + GetdirectorySize(Path+Sr.Name+'\')
      else
        Result := Result + Sr.Size;
    SysUtils.FindClose(sr);
  end;
end;

procedure CopyToClipBoard(FileName:string; Handle: THandle{just use form's handle});
var
  DataHandle: THandle;
  DataPointer: PDROPFILES;
begin
  DataHandle := GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE,SizeOf(DROPFILES)+2+Length(FileName));
  DataPointer := PDROPFILES(GlobalLock(DataHandle));
  FillChar(DataPointer^,SizeOf(DROPFILES)+2+Length(FileName),0);

  DataPointer.pFiles:=SizeOf(DROPFILES);
  DataPointer.pt:=Point(0,0);
  DataPointer.fNC:=False;
  DataPointer.fWide:=False;
  Move(FileName[1],Pointer(Integer(DataPointer)+SizeOf(DROPFILES))^,Length(FileName));
  GlobalUnlock(DataHandle);
  OpenClipboard(Handle);
  EmptyClipboard;
  SetClipboardData(CF_HDROP, DataHandle);
  CloseClipboard;
end;

function IsLegalIP(IP:string):boolean;
var
  i, j, l: integer;
  ips: array [1..4] of string;
begin

  i:=1;
  for l:=1 to 4 do ips[l]:='';
  for j:=1 to length(ip) do
    if ip[j]<>'.' then
    begin
      if (ip[j]<'0')or(ip[j]>'9') then
      begin
        //showmessage(ip[j]);
        Result:=false;
        exit;
      end;
      ips[i]:=ips[i]+ip[j]
    end
    else inc(i);

  if (i<>4)
      or((strtoint(ips[1])>255)or(strtoint(ips[1])<0))  //originally is <1
      or((strtoint(ips[2])>255)or(strtoint(ips[2])<0))
      or((strtoint(ips[3])>255)or(strtoint(ips[3])<0))
      or((strtoint(ips[4])>255)or(strtoint(ips[4])<0))
  then Result:= false else Result:= true;

end;

function GetOSVersion : OSType;
var
  osVerInfo : TOSVersionInfo;
  majorVer, minorVer : Integer;
begin

  //Result := osUnknown;
  osVerInfo.dwOSVersionInfoSize := SizeOf( TOSVersionInfo );
  if ( GetVersionEx( osVerInfo ) ) then
  begin
    majorVer := osVerInfo.dwMajorVersion;
    minorVer := osVerInfo.dwMinorVersion;
    case ( osVerInfo.dwPlatformId ) of
      VER_PLATFORM_WIN32_NT : { Windows NT/2000 }
      begin
        if ( majorVer <= 4 ) then
        Result := osWinnt4
        else
        if ( ( majorVer = 5 ) and ( minorVer= 0 ) ) then
        Result := osWin2k
        else
        if ( ( majorVer = 5) and ( minorVer = 1 ) ) then
        Result := osWinxp
        else
        Result := OsUnknown;
      end;
      VER_PLATFORM_WIN32_WINDOWS : { Windows 9x/ME }
      begin
        {
        If ( ( majorVer = 4 ) And ( minorVer = 0 ) ) Then
        Result := osWin95
        Else If ( ( majorVer = 4 ) And ( minorVer = 10 ) ) Then 
        Begin
          If ( osVerInfo.szCSDVersion[ 1 ] = 'A' ) Then
          Result := osWin98se
          Else
          Result := osWin98;
        End 
        Else If ( ( majorVer = 4) And ( minorVer = 90 ) ) Then
        Result := OsWinME
        Else
        Result := OsUnknown;
        }
        Result:= osWin9x;
      end;
      else
      Result := OsUnknown;
    end; //end of case
  end else
  Result := OsUnknown;

end;

//------------------------------------------
function SHFindComputer(pidlRoot: PItemIDList; pidlSavedSearch: PItemIDList): Boolean;
 stdcall; external 'Shell32.dll' index 91;
//----------------------------------------------

function ShowSearchHostDialog: boolean;
var pidlRoot: PItemIDList;
    pidlSavedSearch: PItemIDList;
begin
  pidlRoot:=nil;  //just remove warning;
  pidlSavedSearch:=nil; //just remove warning;
  result := SHFindComputer(pidlRoot,pidlSavedSearch);
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满少妇久久久久久久| 日韩**一区毛片| 国产午夜精品一区二区| 精品日产卡一卡二卡麻豆| 欧美第一区第二区| 久久综合色之久久综合| 久久噜噜亚洲综合| 国产精品免费观看视频| 1区2区3区国产精品| 亚洲综合无码一区二区| 亚洲h动漫在线| 久久精品国产秦先生| 国产精品亚洲专一区二区三区| 福利一区福利二区| 日本久久精品电影| 欧美一区二区久久久| 久久青草欧美一区二区三区| 国产精品亲子乱子伦xxxx裸| 一区二区视频免费在线观看| 亚洲福利一二三区| 激情文学综合插| 9色porny自拍视频一区二区| 欧美在线|欧美| 日韩一区二区精品在线观看| 国产亚洲人成网站| 亚洲一区二区三区四区在线免费观看 | 一区二区三区四区高清精品免费观看 | 麻豆精品久久久| 日韩高清在线一区| 国产不卡在线播放| 欧美日韩一区二区在线观看| 精品精品欲导航| 中文成人综合网| 亚洲一区二区影院| 国产精一区二区三区| 欧日韩精品视频| 日韩欧美三级在线| 亚洲区小说区图片区qvod| 日韩av成人高清| 不卡的电影网站| 日韩欧美国产一区二区三区| 亚洲色欲色欲www| 国内外精品视频| 欧美综合亚洲图片综合区| 2021久久国产精品不只是精品| 一区二区在线观看视频| 国产激情视频一区二区在线观看| 欧美日韩视频一区二区| 久久久99免费| 久久成人18免费观看| 在线这里只有精品| 国产精品视频免费| 国产精品一区一区| 欧美一区二区三区在| 亚洲精品成人少妇| 日韩午夜激情电影| 亚洲国产乱码最新视频| 成人app软件下载大全免费| 日韩女同互慰一区二区| 亚洲18女电影在线观看| 色偷偷一区二区三区| 国产欧美一区二区精品性| 另类小说视频一区二区| 欧美一卡二卡在线| 天堂蜜桃一区二区三区| 在线欧美小视频| 一区二区三区四区在线| av一本久道久久综合久久鬼色| 久久久久久久久99精品| 国产一区二区三区最好精华液| 欧美一区二区日韩一区二区| 人妖欧美一区二区| 91精品午夜视频| 日韩一区精品视频| 欧美精品第1页| 婷婷中文字幕一区三区| 欧美日韩中文一区| 亚洲国产色一区| 欧美男人的天堂一二区| 午夜欧美视频在线观看| 欧美丰满少妇xxxxx高潮对白| 亚洲一区二区中文在线| 精品视频一区二区三区免费| 亚洲成人三级小说| 91麻豆精品国产91久久久久久| 午夜精品福利久久久| 欧美一级黄色大片| 激情亚洲综合在线| 亚洲国产精品国自产拍av| 成人免费观看av| 亚洲欧美日韩国产另类专区 | 欧美日韩国产a| 午夜视频在线观看一区二区| 日韩欧美国产一区二区在线播放| 国产在线视频一区二区| 中文字幕精品三区| 一本到一区二区三区| 亚洲国产精品视频| 精品国产成人在线影院 | 色av一区二区| 偷拍与自拍一区| 久久久久国产精品人| av在线播放一区二区三区| 一区二区三区美女| 日韩欧美一区在线观看| 成人性生交大合| 亚洲成人免费看| 久久精品欧美一区二区三区麻豆| 99re视频这里只有精品| 免费成人在线观看| 最新日韩av在线| 亚洲欧美一区二区三区孕妇| 欧美色爱综合网| 国产成人亚洲综合a∨猫咪| 亚洲国产日韩一区二区| 久久久精品日韩欧美| 欧美影院一区二区三区| 国产一区啦啦啦在线观看| 亚洲男人天堂av| 久久综合久久综合久久综合| 在线一区二区三区四区| 国产乱码精品1区2区3区| 亚洲成人在线观看视频| 国产精品久久午夜| 欧美精品一区二区精品网| 欧美无砖砖区免费| 国产成人精品免费在线| 蜜桃视频一区二区| 亚洲一区二区三区四区在线| 国产精品久久久久7777按摩| 久久综合九色综合欧美亚洲| 欧美另类久久久品| 91影院在线免费观看| 国产盗摄女厕一区二区三区 | 中文一区二区完整视频在线观看| 欧美女孩性生活视频| 色菇凉天天综合网| 不卡一区二区三区四区| 国产美女视频一区| 蜜桃av一区二区在线观看| 午夜久久久久久久久| 亚洲欧洲综合另类| 亚洲婷婷国产精品电影人久久| 国产日韩欧美高清| 久久久久久久久久看片| 久久综合中文字幕| 精品日韩成人av| 久久伊人中文字幕| 2024国产精品视频| 久久亚洲捆绑美女| 久久日韩粉嫩一区二区三区| 日韩欧美一二三四区| 日韩一卡二卡三卡| 欧美不卡一二三| 欧美成va人片在线观看| 日韩欧美黄色影院| 久久综合九色综合欧美就去吻| 欧美精品一区男女天堂| 精品国产免费视频| 久久久久久99久久久精品网站| 亚洲香肠在线观看| 日韩激情在线观看| 美日韩一区二区三区| 看片网站欧美日韩| 国产一区不卡在线| 91在线视频播放| 91黄色免费看| 91精品国产综合久久久蜜臀图片| 6080日韩午夜伦伦午夜伦| 日韩欧美一区二区视频| 精品成人在线观看| 欧美经典三级视频一区二区三区| 国产日韩欧美制服另类| 亚洲欧洲国产日韩| 亚洲成精国产精品女| 免费人成在线不卡| 国产成人三级在线观看| 99re在线精品| 日韩欧美国产电影| 国产精品久久精品日日| 婷婷久久综合九色综合伊人色| 视频一区免费在线观看| 国产精品小仙女| 欧美亚洲综合网| 国产亚洲综合在线| 亚洲一区二区三区在线| 国产原创一区二区| 色菇凉天天综合网| ww亚洲ww在线观看国产| 亚洲一区二区精品久久av| 久久99精品久久久久婷婷| 成人黄色大片在线观看| 欧美视频在线观看一区二区| 欧美成人精品1314www| 亚洲蜜臀av乱码久久精品| 黑人精品欧美一区二区蜜桃| 91看片淫黄大片一级| 久久久久久亚洲综合| 亚洲成人免费观看| 99国产精品国产精品毛片|