要使用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,這將獲取整個屏幕的設備上下文。