const cScanIndex = 3; var vScanIndex: Integer;function EnumChildProc( hwnd: HWND; lParam: LPARAM ): BOOL; stdcall; var vBuffer: array[0..255] of Char; begin Result := True; GetClassName(hwnd, vBuffer, SizeOf(vBuffer)); if SameText(vBuffer, 'Edit') or SameText(vBuffer, 'TEdit') then begin if vScanIndex = cScanIndex then begin SendMessage(hwnd, WM_GETTEXT, SizeOf(vBuffer), Integer(@vBuffer[0])); TForm1(lParam).Caption := vBuffer; Result := False; end; Inc(vScanIndex); end; end;procedure TForm1.Button1Click(Sender: TObject); var vHandle: THandle; begin vHandle := Handle; //得到要扫描窗体的句柄 vScanIndex := 0; EnumChildWindows(vHandle, @EnumChildProc, Integer(Self)); end;
……用WindowFromPoint()、GetCursorPos()得到目标Edit的句柄 用GetClassName()分析它的类名 用EnumChildWindows()遍历子窗体 通过WM_GETTEXT消息得到其文本const cScanIndex = 3; //这个地方需要根据你自己的情况得到 //...procedure TForm1.Button1Click(Sender: TObject); var vHandle: THandle; begin vHandle := 这个地方是你的得到的窗体句柄 //... end;
cScanIndex = 3;
var
vScanIndex: Integer;function EnumChildProc(
hwnd: HWND;
lParam: LPARAM
): BOOL; stdcall;
var
vBuffer: array[0..255] of Char;
begin
Result := True;
GetClassName(hwnd, vBuffer, SizeOf(vBuffer));
if SameText(vBuffer, 'Edit') or SameText(vBuffer, 'TEdit') then
begin
if vScanIndex = cScanIndex then
begin
SendMessage(hwnd, WM_GETTEXT, SizeOf(vBuffer), Integer(@vBuffer[0]));
TForm1(lParam).Caption := vBuffer;
Result := False;
end;
Inc(vScanIndex);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
vHandle: THandle;
begin
vHandle := Handle; //得到要扫描窗体的句柄 vScanIndex := 0;
EnumChildWindows(vHandle, @EnumChildProc, Integer(Self));
end;
用GetClassName()分析它的类名
用EnumChildWindows()遍历子窗体
通过WM_GETTEXT消息得到其文本const
cScanIndex = 3; //这个地方需要根据你自己的情况得到
//...procedure TForm1.Button1Click(Sender: TObject);
var
vHandle: THandle;
begin
vHandle := 这个地方是你的得到的窗体句柄
//...
end;
var MemInfo: MEMORYSTATUS;
begin
// 获取内存信息
GlobalMemoryStatus(MemInfo);
Memo1.Lines.Add(IntToStr(MemInfo.dwMemoryLoad) + '%的内存在使用');
Memo1.Lines.Add('物理内存共有' + IntToStr(MemInfo.dwTotalPhys) + '字节');
Memo1.Lines.Add('未使用的物理内存有' + IntToStr(MemInfo.dwAvailPhys) + '字节');
Memo1.Lines.Add('交换文件的大小为' + IntToStr(MemInfo.dwTotalPageFile) + '字节');
Memo1.Lines.Add('未使用的交换文件大小为' + IntToStr(MemInfo.dwAvailPageFile) + '字节');
Memo1.Lines.Add('虚拟内存空间大小为' + IntToStr(MemInfo.dwTotalVirtual) + '字节');
Memo1.Lines.Add('未使用的虚拟内存大小为' + IntToStr(MemInfo.dwAvailVirtual) + '字节');
end;