//目录保存路径
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;