要使用Delphi获取其他窗口的颜色值,可以使用Windows API函数GetPixel。
以下是一个示例代码,它演示如何获取屏幕上指定坐标处的像素颜色值:
unit MainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
hwnd: HWND;
dc: HDC;
pixelColor: TColorRef;
begin
// 获取指定窗口的句柄
hwnd := FindWindow(nil, '窗口标题');
if hwnd <> 0 then
begin
// 获取指定窗口的设备上下文
dc := GetDC(hwnd);
if dc <> 0 then
begin
// 获取指定坐标处的像素颜色值
pixelColor := GetPixel(dc, 100, 100);
// 释放设备上下文
ReleaseDC(hwnd, dc);
// 显示颜色值
ShowMessage('颜色值为:' + IntToHex(pixelColor, 8));
end
else
begin
ShowMessage('无法获取设备上下文');
end;
end
else
begin
ShowMessage('未找到指定窗口');
end;
end;
end.
在上面的代码中,使用FindWindow函数来获取指定窗口的句柄。然后使用GetDC函数获取窗口的设备上下文。接下来,使用GetPixel函数获取指定坐标处的像素颜色值。最后,使用ShowMessage函数显示颜色值。
请注意,你需要将“窗口标题”替换为你想获取颜色值的窗口的实际标题。另外,要获取屏幕上的其他窗口的颜色值,可以将hwnd参数设置为0,这将获取整个屏幕的设备上下文。