函数大杂烩

//目录保存路径
procedure TForm2.Button1Click(Sender: TObject);
vars:string;
begin 
if SelectDirectory('选择文件夹','',s) then Edit1.Text := s+'\';
end;
//判断'目录'或'文件'是否存在
procedure TForm1.Button1Click(Sender: TObject);  //目录
var
  DirectoryPath: String;
begin
  DirectoryPath := 'C:\Windows';
  if DirectoryExists(DirectoryPath) then
  Begin
    Showmessage('存在');
  End;
end;

procedure TForm1.Button4Click(Sender: TObject);  //文件
Var
  FilePath: String;
begin
  FilePath := 'c:\Windows\System32\calc.exe';
  if FileExists(FilePath) then
  Begin
    Showmessage('存在');
  End;
End;
Var 
 A: String;
Begin
  A := 'I Love You'; 
  LeftStr(A, 6); // 返回字符左边前6位 "I Love"
  Midstr(A, 6, 4); // 返回字符" You"
  RightStr(A, 3); // 返回字符"You"
  ReverseString(A); // 返回字符"uoY evoL I"
  Pos('L',A); // 返回字符"3"
  UpperCase('A'); // 返回字符"I LOVE YOU"
  LowerCase('A'); // 返回字符"i love you"
End;// 需要引用单元“StrUtils”
Var
  I: Integer;
Begin
  I := 0;
  Inc(I);
End;
//每次循环加"1"
Var
  Hwn: hwnd;
  Rec: TRect;
begin
  Hwn := FindWindow(Nil, PWideChar(Edit1.Text));	//根据窗口标题获取句柄
  GetWindowRect(Hwn, Rec);	 //根据句柄获取窗口矩形
  Memo1.Lines.Add(Rec.Width);
  Memo1.Lines.Add(Rec.Height);
FormatDateTime('yyyy-mm-dd hh:mm:ss', Now)
//2013-06-10 00:53:44
{ 自定义产生随机字符串函数 }
function GetRandomName: string;
var
  SourceStr, Str: String;
  I: integer;
begin
  SourceStr := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  for I := 1 to 16 do
    Str := Str + SourceStr[Random(51) + 1];
  result := Str;
end;
//获取屏幕分辨率
procedure TForm1.Button1Click(Sender: TObject);
var
  X, Y: Integer;
begin
  X := GetSystemMetrics(SM_CXSCREEN);
  Y := GetSystemMetrics(SM_CYSCREEN);
  Form1.Caption := 'x=' + inttostr(X) + ' y=' + inttostr(Y);
end;
//激活指定窗口
procedure SwitchToThisWindow(hWnd: Thandle; fAltTab: boolean); stdcall; external 'User32.dll';
SwitchToThisWindow(Hwnd, True);
procedure TForm1.Button1Click(Sender: TObject);
var
hWindow: HWND;           { 窗体句柄}
dwProcessID: DWORD; { 进程ID }
hProcess: THandle;       { 进程句柄}
begin
{ 根据标题获取窗体的句柄}
hWindow := FindWindow(nil, '标题');
{ 根据窗口句柄修改标题 }
SetWindowText(hWindow, PChar('我的程序'));
{ 通过窗体句柄获取进程ID }
GetWindowThreadProcessId(hWindow, dwProcessID);
{ 通过进程PID获取进程名字 }
function ProcessIdToName(PID: DWORD): string;
var
  hSnapshot: Thandle;
  PE: PROCESSENTRY32;
begin
  Result := '';
  hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  PE.dwSize := sizeof(PROCESSENTRY32);
  if Process32First(hSnapshot, PE) <> False then
  begin
    while (Process32Next(hSnapshot, PE)) do
    begin
      if (PE.th32ProcessID = PID) then
      begin
        Result := PE.szExeFile;
        Break;
      end;
    end;
  end;
end;
{ 通过进程ID 获取进程句柄}
hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, dwProcessID);
{ 结束该进程}
TerminateProcess(hProcess, 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
  Color: TColor;
  Hwnd: HDC;
  R,G,B: Byte; 
begin
  Hwnd := GetDc(264096);  //指定窗口句柄
  Color := GetPixel(Hwnd, 186, 235);  //获取指定坐标颜色
  Memo1.Lines.Add(ColorToString(Color));  //TColor转换成String
  {Color拆分为RGB}
  R := GetRValue(Color);
  G := GetGValue(Color);
  B := GetBValue(Color);
  Showmessage(ColorToString(RGB(R, G, B)));
end;
procedure TForm1.Button1Click(Sender: TObject); 
Var
  X, Y: OleVariant; 
  Wx, Wy: TPoint;  //坐标类型
begin
      Wx.X := X;
      Wx.Y := Y;
End;
FindWindow(Nil, PWideChar(WideString(LabeledEdit2.Text + ' - 添加好友'))); //转换类型
ExtractFilePath(Application.Exename)    //取取程序自身路径
IntToHex('100',2);//把一个值转换成16进制形式的字符串。
ColorToString(TColor)//把一个颜色值转为字符串。
RenameFile('d:\123.txt','d:\123.ini');<span style="white-space:pre">	</span>//修改文件扩展名
function DiskFree(Drive: String): Int64;
var
  FreeBytesAvailableToCaller: Int64;
  RootPtr: pChar;
  TotalNumberOfBytes: Int64;
begin
  RootPtr := pChar(Drive);
  if GetDiskFreeSpaceEx(RootPtr, FreeBytesAvailableToCaller, TotalNumberOfBytes, nil) then Result := FreeBytesAvailableToCaller
  else Result := -1
end;

function DiskSize(Drive: String): Int64;
var
  FreeBytesAvailableToCaller: Int64;
  RootPtr: pChar;
  TotalNumberOfBytes: Int64;
begin
  RootPtr := pChar(Drive);
  if GetDiskFreeSpaceEx(RootPtr, FreeBytesAvailableToCaller, TotalNumberOfBytes, nil) then Result := TotalNumberOfBytes
  else Result := -1
end;

Memo1.Line.add(Inttostr(DiskSize('C:\')));
//不让程序在任何栏上显示
SetwindowLong(Form1.handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
//根据句柄隐藏或显示窗口
SHOWWINDOW(Hwn, SW_HIDE);
SHOWWINDOW(Hwn, SW_SHOW)

//隐藏窗口
Application.Minimize();
ShowWindow(Application.handle, SW_HIDE);

//显示窗口
ShowWindow(Application.handle, SW_SHOW);
Application.Restore()
Application.handle, SW_SHOW);
Application.Restore()
ExitProcess(0);  //关闭自身程序

//获取指定窗口大小和屏幕位置
Var
  hwn: hWnd;
  Ih: TRect;
begin
  hwn := FindWindow(Nil, '查找');
  GetWindowRect(hwn, Ih);
  ShowMessageFMT('宽:%d,高:%d,横坐标:%d,纵坐标:%d', [Ih.Width, Ih.Height, Ih.Left, Ih.Top]);
end;
//获取鼠标位置和类名、标题
var
  XY: TPoint;
  hwn: hWnd;
  Arr, Abb: array [0 .. 254] of Char;
begin
  GetCursorPos(XY);
  hwn := WindowFromPoint(XY);
  GetClassName(hwn, Arr, Length(Arr));
  GetWindowText(hwn, Abb, Length(Abb));
  Memo1.Lines.add(Abb + '' + Arr);
end;

function GetWndText(ThWnd: hWnd): string;  //获取指定程序的标题
var
  Ret: LongInt;
  mText: PChar;
  Buf: Integer;
begin
  Ret := SendMessage(ThWnd, WM_GETTEXTLENGTH, 0, 0) + 1;
  GetMem(mText, Ret);
  try
    Buf := LongInt(mText);
    SendMessage(ThWnd, WM_GETTEXT, Ret, Buf);
    result := StrPas(mText);
  finally
    FreeMem(mText, Ret);
  end;
end;
//获取指定窗口状态并设置状态
var
  hwn: hWnd;
  wp: TwindowPlacement;
begin
  wp.Length := Sizeof(TwindowPlacement);
  GetWindowPlacement(hwn, @wp);
  wp.showCmd := SW_RESTORE;
  SetWindowPlacement(hwn, @wp);
end;
//引用 Htppapp
Var
  S: String;
begin
  S := HttpEncode('耿福超');
  Showmessage('http://www.baidu.com/s?wd=' + S);
  // http://www.baidu.com/s?wd=%E8%80%BF%E7%A6%8F%E8%B6%85

  S := HttpDecode('%E8%80%BF%E7%A6%8F%E8%B6%85');
  Showmessage('http://www.baidu.com/s?wd=' + S);
  // http://www.baidu.com/s?wd=耿福超
end;
  StringReplace(Str, #10, '', [rfReplaceAll]);  //删除所有换行
  StringReplace(Str, #13, '', [rfReplaceAll]);  //删除所有回车
GetForegroundWindow;  //获取Windows最顶层窗口句柄
//把文件复制到文件到剪贴板里
//声明全局 Const
  {const
  DROPEFFECT_COPY = 1;
  DROPEFFECT_MOVE = 2;}
//添加单元 ShlObj,ClipBrd;
procedure CopyFilesToClipboard(FileList: string);
var
  DropFiles: PDropFiles;
  hGlobal: Thandle;
  iLen: Integer;
begin
  iLen := Length(FileList) * Sizeof(Char) + 2;
  FileList := FileList + #0#0;
  hGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT, Sizeof(TDropFiles) + iLen);
  if (hGlobal = 0) then
    raise Exception.Create('Could not allocate memory.');
  begin
    DropFiles := GlobalLock(hGlobal);
    DropFiles^.pFiles := Sizeof(TDropFiles);
    DropFiles^.pt.X := 0;
    DropFiles^.pt.Y := 0;
    DropFiles^.fNC := False;
    DropFiles^.fWide := True;
    Move(FileList[1], (PAnsiChar(DropFiles) + Sizeof(TDropFiles))^, iLen);
    GlobalUnlock(hGlobal);
    ClipBoard.SetAsHandle(CF_HDROP, hGlobal);
  end;
end;

//调用方法
procedure TForm1.Button1Click(Sender: TObject);
var
  Path1, Path2, b: string;
begin
  Path1 := 'C:\1.Txt';
  Path2 := 'C:\1.Bmp';
  b := StringReplace(Path1 + #13#10 + Path2, #13#10, #0, [rfReplaceAll]);
  CopyFilesToClipboard(b);
end;
//分割字符串
function split(Str: string): TStringList;
begin
  result := TStringList.Create;
  result.Text := StringReplace(Str, #13#10, #13#10, [rfReplaceAll])
end;
//根据不同分隔符获取字符串内容
function GetFieldValue(separator:Char;strLine: string; nNum: Integer): string;  
var  
  Strs :TStrings;  
  ResultStr:string;  
begin  
  Strs := TStringList.Create;  
  strs.Delimiter := separator;  
  Strs.DelimitedText  := strLine;  
  if nNum > Strs.Count then  
     ResultStr := ''  
  else  
     ResultStr := Strs[nNum-1];  
  
  FreeAndNil(Strs);  
  Result := ResultStr;  
end; 
//未例子
GetFieldValue(分隔符,字符串,要获取第几个字段的内容)
//检测焦点在那个控件上
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Text1 := Screen.ActiveControl.ClassName;  //类名
  Text2 := Screen.ActiveControl.Name;  //控件名
end;
//检测指定字符串是否有多个相同
procedure TForm1.Button1Click(Sender: TObject);
var 
  StrLst: TStringList;
begin
  StrLst:= TStringList.Create;
  try
    //有多少个2
   StrLst.Delimiter:= '-';
   StrLst.DelimitedText:= 'AB间-AB区间2层小楼';
   Edit1.Text:=IntToStr(StrLst.Count - 1);//个数
  finally
    StrLst.Free;
  end;
end;
trim //去掉头尾巴空格
//检测字符串里有多少个相同字符
Function RepeatStr(fsource, fMubiao: String): Integer;
var
  Count, I: Integer;
  S: string;
Begin
  Count := 0;
  S := trim(fsource);
  for I := 0 to strlen(PChar(S)) do
  begin
    if copy(S, I, 1) = fMubiao then
      Count := Count + 1;
  end;
  Result := Count;
End;
//举例:
procedure TForm1.FormCreate(Sender: TObject);
var
  d1,d2,d3,d4: DWORD;
begin
  GetDiskFreeSpace('C:',d1,d2,d3,d4);

  {以下只是显示}
  Memo1.Clear;
  with Memo1.Lines do
  begin
    Add(Format('一个簇内的扇区数: %d',[d1]));
    Add(Format('一个扇区内的字节数: %d',[d2]));
    Add(Format('剩余簇数: %d',[d3]));
    Add(Format('总簇数: %d',[d4]));
    Add(Format('剩余空间: %f GB',[d3/1024/1024/1024*d2*d1]));
    Add(Format('总空间: %f GB',[d4/1024/1024/1024*d2*d1]));
  end;
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值