北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: ddid

新手抄经——工号查询机器人(MUSH)

[复制链接]
 楼主| 发表于 2009-7-23 07:05:18 | 显示全部楼层
原帖由 maper 于 2009-7-22 19:17 发表

我败了。。。。


研究了一晚上,jpg转bmp已经有些眉目了,应该可以解决的(最笨的办法我已经实现了:找了一个jpg2bmp.exe,load windows_utils,lua脚本执行的时候同时转bmp),好一点的办法是luacom,不过还没研究出来。

另外一个问题是怎么取得网页中的.jpg文件呢?maper有没有什么办法?

笨办法的代码先贴上来:

...
-- convert image file from .jpg to .bmp
require "wait"
wait.make (function ()
  convert_jpg2bmp()
   wait.time (2)

-- loade .bmp image file
  WindowLoadImage (win, "image1", "C:/wscript/2.bmp")

-- draw the .png graphic file into the window
  WindowDrawImage (win, "image1", 3, 3, -3, -3, 2)

-- ensure window visible
  WindowShow (win, true)

end)

end -- picture()

function convert_jpg2bmp()

-- load dll
assert (package.loadlib ("windows_utils.dll", "luaopen_windows_utils")) ()

-- execute file
assert (windows_utils.shell_execute ("jpg2bmp.exe", "2.jpg", "C:\\wscript"))

end -- convert_jpg2bmp ()

[ 本帖最后由 ddid 于 2009-7-23 07:57 AM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-7-23 07:10:29 | 显示全部楼层
原帖由 zgbl 于 2009-7-22 23:36 发表
ddid牛啊,另一个机器人大神诞生了


俺可一点都不牛啊,MUSH都是现学现卖,之前还有出错的时候,还老被抓到……



[ 本帖最后由 ddid 于 2009-7-23 05:59 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-7-23 10:30:01 | 显示全部楼层
http://www.gammon.com.au/forum/?id=7322
查找“How to get LuaSocket to work”,详细说明了如何使用lua访问网页,不过如何下载图片我还没研究出来,用这个应该也可以吧。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-7-23 15:07:26 | 显示全部楼层
哇哈哈~ 终于搞定图片转换了!


所需组件:

1. Gammon提供的luacom
http://www.gammon.com.au/downloads/dlmushclient.htm
luacom.zip

2. MS WIA 2.0 SDK
http://www.microsoft.com/downloads/details.aspx?familyid=a332a77a-01b8-4de6-91c2-b7ea32537e29&displaylang=en
此组件在Windows下需要注册,注册方法见ReadMe.txt


代码如下:
  1. function test_wia()

  2. -- load luacom
  3. assert (package.loadlib ("luacom.dll","luacom_open")) ()

  4. -- Instantiate WIA obejct
  5. local Img = assert (luacom.CreateObject ("WIA.ImageFile"), "cannot open WIA.ImageFile")
  6. local IP = assert (luacom.CreateObject ("WIA.ImageProcess"), "cannot open WIA.ImageProcess")

  7. -- Load .jpg image file
  8. Img:LoadFile("C:\\wscript\\1.jpg")

  9. -- Set "Convert" as Filter
  10. IP.Filters:Add(IP.FilterInfos("Convert").FilterID)

  11. -- Set Convert format as BMP
  12. IP.Filters(1).Properties("FormatID").Value = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"

  13. -- Set the quality of the converted image
  14. IP.Filters(1).Properties("Quality").Value = 100

  15. -- Apply the Filter
  16. Img = IP:Apply(Img)

  17. -- Save the image as .BMP
  18. Img:SaveFile("C:\\wscript\\11.bmp")

  19. end -- test_wia()
复制代码
MUSHClient 4.40上运行通过。

SaveFile() 时需要注意,不能有同名文件,否则报错!
可以在画完Mini Window以后通过os.remove()来删除.BMP文件,以防止出错。
例如:os.remove("C:/wscript/11.bmp")

COM组件就是快啊,画mini window时,都不用wait了……

[ 本帖最后由 ddid 于 2009-7-23 04:34 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-7-23 15:43:14 | 显示全部楼层
哈哈~ 个人的第一个精华帖!不枉我苦熬一宿的钻研呀……  
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-7-23 16:14:10 | 显示全部楼层
good,先借来用一用了。
我也已经搞定了下载图片的方法,抄的
http://www.damnsmalllinux.org/f/topic-3-23-20213-0.html
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-7-23 17:14:40 | 显示全部楼层
OK!

合成、传参、除错、发布机器人……

北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-7-23 21:23:54 | 显示全部楼层
试了一下lua socket,发现lua socket抓下来的html和实际IE浏览的页面结果不同?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-7-23 21:28:37 | 显示全部楼层
原帖由 ddid 于 2009-7-23 09:23 PM 发表
试了一下lua socket,发现lua socket抓下来的html和实际IE浏览的页面结果不同?

是的 我也正为这个发愁,关键是那个验证网页抓下来的和浏览器源码不一样,找不到jpg的路径。
我以前是可以抓到的啊。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-7-23 21:51:50 | 显示全部楼层
试了下winhttp,还是同样的结果
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-24 08:54 PM , Processed in 0.012377 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表