读书人

截图有关问题黑屏

发布时间: 2013-02-05 10:40:57 作者: rapoo

截图问题,黑屏!
procedure ScreenCap(LeftPos,TopPos,RightPos,BottomPos:integer);
var
RectWidth,RectHeight:integer;
SourceDC,DestDC,Bhandle:integer;
Bitmap:TBitmap;
Stream:TMemoryStream;
begin
RectWidth:=RightPos-LeftPos;
RectHeight:=BottomPos-TopPos;
SourceDC:=CreateDC('DISPLAY','','',nil);
DestDC:=CreateCompatibleDC(SourceDC);
Bhandle:=CreateCompatibleBitmap(SourceDC,RectWidth,RectHeight);
SelectObject(DestDC,Bhandle);
BitBlt(DestDC,0,0,RectWidth,RectHeight,SourceDC,LeftPos,TopPos,SRCCOPY);
Bitmap:=TBitmap.Create;
Bitmap.Handle:=BHandle;
Stream := TMemoryStream.Create;
Bitmap.SaveToStream(Stream);
Bitmap.PixelFormat := pf24bit;
Stream.Free;
try
FORM1.Image1 .Picture .Bitmap :=Bitmap;
Bitmap.SaveToFile('C:\Documents and Settings\'+pchar(GetCurrentUserName)+'\桌面\2.bmp');
finally
Bitmap.Free;
DeleteDC(DestDC);
ReleaseDC(Bhandle,SourceDC);
end;
end;

用上面这个函数能正常截图,但是我如果切换电脑用户时(WIN+L)他截出来的就是黑色的,
请问各位大大们有没有办法让他不黑屏!
[解决办法]
OpenInputDesktop
GetUserObjectInformation
CreateProcessAsUser

读书人网 >.NET

热点推荐