我是一个delphi的初学者,今天做了一个小的抓图软件,抓桌面的时候想把开始菜单的那一行一起抓进去,可是不行,哪位大哥可以告诉我啊!

解决方案 »

  1.   

    function CaptureScreen:TBitmap;
    var
     DC : HDC;
     ABitmap  : TBitmap;
     CI: TCursorInfo;
    begin
     DC := GetDC(GetDesktopWindow);
     ABitmap := TBitmap.Create;
     try
        ABitmap.Width := GetDeviceCaps(DC,HORZRES);
        ABitmap.Height := GetDeviceCaps(DC,VERTRES);
        BitBlt(ABitmap.Canvas.Handle,
               0,
               0,
               ABitmap.Width,
               ABitmap.Height,
               DC,
               0,
               0,
               SRCCOPY);
        ZeroMemory(@CI,SizeOf(CI));
        CI.cbSize := SizeOf(CI);
        if GetCursorInfo(CI) then
        DrawIconEx(ABitmap.Canvas.Handle,
                   CI.ptScreenPos.X,
                   CI.ptScreenPos.Y,
                   CI.hCursor,
                   16,
                   16,
                   0,
                   0,
                   DI_DEFAULTSIZE OR DI_NORMAL); finally
        ReleaseDC(GetDesktopWindow,DC);
     end;
     Result := ABitmap;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      CaptureScreen.SaveToFile('c:\test.bmp');
    end;