ddid 发表于 2009-7-23 07:05:18

原帖由 maper 于 2009-7-22 19:17 发表 http://web.pkuxkx.net/forum/images/common/back.gif

我败了。。。。

研究了一晚上,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 编辑 ]

ddid 发表于 2009-7-23 07:10:29

原帖由 zgbl 于 2009-7-22 23:36 发表 http://web.pkuxkx.net/forum/images/common/back.gif
ttk_00 ddid牛啊,另一个机器人大神诞生了

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

hzw

[ 本帖最后由 ddid 于 2009-7-23 05:59 PM 编辑 ]

maper 发表于 2009-7-23 10:30:01

http://www.gammon.com.au/forum/?id=7322
查找“How to get LuaSocket to work”,详细说明了如何使用lua访问网页,不过如何下载图片我还没研究出来,用这个应该也可以吧。

ddid 发表于 2009-7-23 15:07:26

哇哈哈~ 终于搞定图片转换了! hzk hzu hzt


所需组件:

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


代码如下:function test_wia()

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

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

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

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

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

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

-- Apply the Filter
Img = IP:Apply(Img)

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

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 编辑 ]

ddid 发表于 2009-7-23 15:43:14

哈哈~ 个人的第一个精华帖!不枉我苦熬一宿的钻研呀……yct13

maper 发表于 2009-7-23 16:14:10

good,先借来用一用了。
我也已经搞定了下载图片的方法,抄的ttk_13
http://www.damnsmalllinux.org/f/topic-3-23-20213-0.html

ddid 发表于 2009-7-23 17:14:40

OK!

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

hze

ddid 发表于 2009-7-23 21:23:54

试了一下lua socket,发现lua socket抓下来的html和实际IE浏览的页面结果不同?

maper 发表于 2009-7-23 21:28:37

原帖由 ddid 于 2009-7-23 09:23 PM 发表 http://pkuxkx.net/forum/images/common/back.gif
试了一下lua socket,发现lua socket抓下来的html和实际IE浏览的页面结果不同?
是的 我也正为这个发愁,关键是那个验证网页抓下来的和浏览器源码不一样,找不到jpg的路径。
我以前是可以抓到的啊。

maper 发表于 2009-7-23 21:51:50

试了下winhttp,还是同样的结果yct12
页: 1 [2] 3 4
查看完整版本: 新手抄经——工号查询机器人(MUSH)