[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
源代码:
  1. #include <stdio.h>
  2. #include <windows.h>
  3. typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();
  4. PROCGETCONSOLEWINDOW GetConsoleWindow;
  5. Int main()
  6. {
  7.        HMODULE hKernel32 = GetModuleHandle("kernel32");
  8.        GetConsoleWindow= (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
  9.        HWND cmd=GetConsoleWindow();
  10.        HDC dc = GetDC(cmd);
  11.        HBITMAP hBitmap;
  12.        hBitmap=(HBITMAP)LoadImage            (NULL,"1.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
  13.        HDC cmdmem = CreateCompatibleDC(dc);
  14.        SelectObject(cmdmem , hBitmap);
  15.        BitBlt(dc , 100 , 100 , 300 , 300 , cmdmem , 0 , 0 , SRCCOPY);
  16.        Return 1;
  17. }
复制代码
http://vanshell.blog.51cto.com/890307/428651

TOP

这个程序我之前无意中搜索baidu看到过。
然后发现无法定位位置,想修改代码无果。
找了很多资料,发现应该是调用了GDI来做的,而不是通过汇编调用VGA做的。
然而GDI的DLL,传入参数有复杂的数据结构还有回调参数地址,构建这种PE程序不是我能搞定的。

于是前面发过一个au3制作的程序,可以在CMD窗口中指定坐标显示图片,而且可以一次显示不超过64张图片,可以达到一定的动画效果。

只是程序300K的体积,上传要分6-7段,就放了一个源码,真正需要的可以通过邮件跟我索要。

TOP

试了一下,好像显示的图只能在那个位置?
我是一个新手.看到此签名的请发点教程我!!谢谢!!

TOP

。。。欺骗眼睛的,CMD 窗口怎么可能支持图片显示呢? 那是不可能的。。。
解释执行的脚本语言与编译语言还是有很大差别的。。。

TOP

强悍,谢谢楼主

TOP

太强大了,楼主!   哈哈,~

TOP

Mark!Thank's!
带内地用语或带里语的文章,在下读写总觉有点吃力;
如误解了各位意思的讲勿见怪   ^_^

TOP

改变下窗口大小,图就消失了。
是16位的还是32位的?
有一种爱叫放弃

TOP

原帖由 zjw767676 于 2011-3-12 16:40 发表
我这里为何一闪而过???????


打开命令提示符
键入:
bmp.exe   你的bmp图片路径

TOP

我这里为何一闪而过???????
有一种爱叫放弃

TOP

楼主太强了。。。。NB...

TOP

这个是在外部打开图片的,并非在CMD窗口,只是显示在CMD输入坐标位置

TOP

如果只是达到这种效果,只需要把一个程序不让它重画,再把它杀掉,它的影像就会留下来了,这并不是在CMD窗口中显示图片,而是残留一个恰好处于CMD窗口中的影像。
下面是一个例子,只是不借用其他工具的话无法定位CMD窗口坐标,图片有可能显示到外面。
PicTest.bat
  1. @echo off
  2. set "pic=D:\aa.jpg"
  3. set "hta=%temp%\temp.hta"
  4. more "%~f0" +13 > "%hta%"
  5. echo init("%pic%");^</script^> >> "%hta%"
  6. start mshta "%hta%"
  7. set "t=Titled Spring Brother"
  8. nircmd wait 500
  9. nircmd win activate title "%t%"
  10. nircmd wait 200
  11. nircmd win sendmsg title "%t%" 0x0B 0 0
  12. nircmd win sendmsg title "%t%" 0x10 0 0
  13. pause
  14. <html><HTA:APPLICATION Application ICON="mspaint.exe" BORDER="None"
  15. SCROLL="No" INNERBORDER="No" SELECTION="No" /><head>
  16. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  17. <title>Titled Spring Brother</title><script type="text/javascript">
  18. function init(picurl){var sHTML = "<img id='pic' name='pic' src='" + picurl
  19. + "'></img>";document.write(sHTML);var p = document.getElementById("pic");
  20. window.resizeTo(p.width, p.height);setTimeout("window.close()",1000);}
  21. </script></head><body style="margin:0px;overflow:hidden;scroll:no;">
  22. <div style='position:absolute; width:100%; height:100%; border:0px;' />
  23. </body></html><script type="text/javascript">
复制代码
1

评分人数

TOP

回复 1楼 的帖子

顶。只是cmd由最小到最大图片就消失了。

TOP

图片显示不完整,还有楼主那个vbs代码怎么修改源程序?

TOP

返回列表