ikinci mesajınıza bir akıl sır erdiremedim ama birinci mesajınıza binaen
biraz gıcık bir yöntem ama handle nosunu bildiğiniz pencereyi minimize konumundan restore konumua getirip screenshotunu aldıktan sonra tekrar minimize konumuna döndürmeyi deneyiniz. Veya
Denemedim ama google amcamın bana bahşettiği aşağıdaki kod sanırım bu işi yapıyor
Kod: Tümünü seç
function WindowSnap(windowHandle: HWND; bmp: TBitmap): boolean;
var
r: TRect;
user32DLLHandle: THandle;
printWindowAPI: function(sourceHandle: HWND; destinationHandle: HDC;
nFlags: UINT): BOOL;
stdcall;
begin
result := False;
user32DLLHandle := GetModuleHandle(user32);
if user32DLLHandle <> 0 then
begin
@printWindowAPI := GetProcAddress(user32DLLHandle, 'PrintWindow');
if @printWindowAPI <> nil then
begin
GetWindowRect(windowHandle, r);
bmp.Width := r.Right - r.Left;
bmp.Height := r.Bottom - r.Top;
bmp.Canvas.Lock;
try
result := printWindowAPI(windowHandle, bmp.Canvas.Handle, 0);
finally
bmp.Canvas.Unlock;
end;
end;
end;
end; (* WindowSnap *)