I found the problem on windows 8.1:
procedure TImageEnIO.CaptureFromScreen(Source: TIECSSource; MouseCursor: TCursor);
var
hwin, hdc: THandle;
x, y, w, h: integer;
rc: trect;
vdsk: boolean;
pt: TPoint;
xbmp: TIEDibBitmap;
plc: TWINDOWPLACEMENT;
hCursor: THandle;
MousePt: TPoint;
ClientLeftTop: TPoint;
IconInfo: TIconInfo;
begin
// ASYNC MODE
if (not fIEBitmapCreated) and fAsyncMode and (not IsInsideAsyncThreads) then
begin
TIEIOThread.CreateCaptureFromScreen(self, CaptureFromScreen, Source, MouseCursor);
exit;
end;
if not MakeConsistentBitmap([]) then
exit;
getcursorpos(MousePt);
hCursor := Screen.Cursors[-2];
GetIconInfo(hCursor, IconInfo);
ClientLeftTop := Point(0, 0);
{ Change this }
vdsk := (IEGlobalSettings().OpSys <> ieosWin95) and (IEGlobalSettings().OpSys <> ieosWinNT4); // 2.3.1
{ To }
vdsk := (IEGlobalSettings().OpSys <> ieosWin95) and (IEGlobalSettings().OpSys <> ieosWinNT4) and (IEGlobalSettings().OpSys <> ieosWin8);
{ vdsk should be false for windows 8 so that
w := Screen.Width;
h := Screen.Height;
}
...
I am not sure if this is the correct fix however, but by using Screen.Width and Screen.Height the capture dimensions are correct at least on my system.
William Miller
Adirondack Software & Graphics
Email: w2m@frontiernet.net
EBook: http://www.imageen.com/ebook/
Apprehend: http://www.frontiernet.net/~w2m/index.html
Custom ImageEn Development