裁减桌面保存图片或者保存到某缓冲区该怎么做啊?

wo_deaizainali 2008-03-30 03:13:54
LOCAL @hdc,@memdc,@hbm,@scrwidth,@scrheight:dword
invoke GetSystemMetrics,SM_CXSCREEN
mov @scrwidth,eax
invoke GetSystemMetrics,SM_CYSCREEN
mov @scrheight,eax
invoke CreateDC,CTXT("DISPLAY"),NULL,NULL,NULL
mov @hdc,eax
invoke CreateCompatibleDC,@hdc
mov @memdc,eax
invoke CreateCompatibleBitmap,@hdc,@scrwidth,@scrheight
mov @hbm,eax
invoke SelectObject,@memdc,@hbm
invoke BitBlt,@memdc,0,0,@scrwidth,@scrheight,@hdc,0,0,SRCCOPY
//看到一个C的代码翻译过来的,但我不知道如何保存成图片,或者保存到某个缓冲区里去.各位老大帮帮忙.
invoke DeleteObject,@hbm
invoke DeleteDC,@memdc
invoke DeleteDC,@hdc
...全文
98 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wo_deaizainali 2008-03-30
  • 打赏
  • 举报
回复
LOCAL @hdc,@memdc,@hbm,@scrwidth,@scrheight:dword
invoke GetSystemMetrics,SM_CXSCREEN
mov @scrwidth,eax
invoke GetSystemMetrics,SM_CYSCREEN
mov @scrheight,eax
invoke CreateDC,CTXT("DISPLAY"),NULL,NULL,NULL
mov @hdc,eax
invoke CreateCompatibleDC,@hdc
mov @memdc,eax
invoke CreateCompatibleBitmap,@hdc,@scrwidth,@scrheight
mov @hbm,eax
invoke SelectObject,@memdc,@hbm
invoke BitBlt,@memdc,0,0,@scrwidth,@scrheight,@hdc,0,0,SRCCOPY
invoke SetClipboardData,CF_BITMAP,@hbm
invoke CloseClipboard
invoke DeleteObject,@hbm
invoke DeleteDC,@memdc
invoke DeleteDC,@hdc

但是不对呀,比如我存在剪贴板上,但是不行
dongyi940333 2008-03-30
  • 打赏
  • 举报
回复
invoke BitBlt,@memdc,0,0,@scrwidth,@scrheight,@hdc,0,0,SRCCOPY

这个函数调用就是保存桌面图片到内存设备环境中。

BitBlt函数:对指定的设备环境区域中的像素进行位块转换,以传送到另一个设备环境中。其中进行位块转换的设备环境称为源设备环境,要传送到的设备环境称为目标设备环境。

@memdc:目标设备环境句柄

@hdc:源设备环境句柄

不对之片请原谅
wo_deaizainali 2008-03-30
  • 打赏
  • 举报
回复
干不起,能帮我弄成汇编形式的吗,
智能卡_Snooper 2008-03-30
  • 打赏
  • 举报
回复
类似这样

http://www.80diy.com/home/20021016/10/1100611.html
wo_deaizainali 2008-03-30
  • 打赏
  • 举报
回复
帮帮忙啊,如何存成一张BMP图片或者放到一块内存里去.
智能卡_Snooper 2008-03-30
  • 打赏
  • 举报
回复
笨方法,找一个对应的C程序,再翻译过来。
发帖
汇编语言

2.1w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
帖子事件
创建了帖子
2008-03-30 03:13
社区公告
暂无公告