51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

楼主: hekinwu
打印 上一主题 下一主题

[原创] 用ExecuteFile调用外部的VBS文件产生的奇怪问题 - Unicode原因

[复制链接]

该用户从未签到

21#
发表于 2007-4-16 15:29:42 | 只看该作者

回复 #4 hekinwu 的帖子

请问你是选的Active X,Visual Basic,Web
哪个协议啊
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2007-4-16 15:30:22 | 只看该作者
呵呵,终于看到了,谢谢你
确实是一样的脚本,但是执行的结果确完全不同sdlkfj7
看来要么是我的VBScript编译器有问题,要么就是环境有影响,奇怪的问题呀。。。

[ 本帖最后由 hekinwu 于 2007-4-16 15:33 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

23#
 楼主| 发表于 2007-4-16 15:32:21 | 只看该作者
原帖由 alex_82712 于 2007-4-16 15:29 发表
请问你是选的Active X,Visual Basic,Web
哪个协议啊


我原来也考虑过可能是插件的原因,
所以做了两个情况,一是Active X,Visual Basic,Web,.Net 统统选中,还有就是一个插件都不选
结果还是一致的错误sdlkfj7
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2007-4-16 15:32:58 | 只看该作者

回复 #20 htot05 的帖子

请教你,我是新手,刚刚这个问题,你是怎么解决的啊
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2007-4-16 15:33:36 | 只看该作者
嗯,好好检查一下你的环境吧
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2007-4-16 15:35:42 | 只看该作者
这在别人的机器上都不是问题,我没有解决什么,只是证明他的脚本是没有问题,问题出在他的环境上而已,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2007-4-16 15:40:59 | 只看该作者

回复 #23 hekinwu 的帖子

我刚也弄好啦
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2007-4-16 15:43:10 | 只看该作者
请看附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

29#
 楼主| 发表于 2007-4-16 16:00:32 | 只看该作者
谢谢大家的帮忙sdlkfj2
终于我也出现了正常的画面

总结:
因为我之前使用UltraEdit和QTP的Function Library生成VBS文件,
这个文件使用下来发现是无法被ExecuteFile执行的,即使之后用NotePad进行修改保存也无效的。

解决方法: 使用右键新建一个文本文件(NotePad),把代码全部Copy进去,Save之后把名字改成Test.vbs
这个时候在用QTP执行ExecuteFile就一点问题都没有了

因为一直以来写Code我还是比较习惯在UltraEdit上面编写,没有想到竟然无法执行,对VBScript还是不太熟悉呀。sdlkfj1
谢谢大家的帮忙,虽然不知道问题究竟是什么原因,但是已经可以绕过去了sdlkfj3

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

30#
 楼主| 发表于 2007-4-17 10:04:23 | 只看该作者
我把可以执行和不可执行的文件一起分析了一下,发现原来执行出现错误的文件是以Unicode编码被保存下来的,而正常执行的文件一定要是ANSI编码的。因为记事本工具默认的编码就是ANSI所以不会出现类似的问题,倒是QTP自己的Save As很奇怪,保存下来的Function Library文件竟然是Unicode编码的。不知道QTP有没有地方可以设置保存文件的编码类型呢?
总之,executefile调用的文件不能是Unicode编码的,一定要是ANSI的。希望大家保存脚本的时候也注意下,今后发生类似的问题可以轻松解决。谢谢大家的热心帮忙。
回复 支持 反对

使用道具 举报

该用户从未签到

31#
发表于 2007-4-17 12:07:14 | 只看该作者
原帖由 hekinwu 于 2007-4-17 10:04 发表
我把可以执行和不可执行的文件一起分析了一下,发现原来执行出现错误的文件是以Unicode编码被保存下来的,而正常执行的文件一定要是ANSI编码的。因为记事本工具默认的编码就是ANSI所以不会出现类似的问题,倒是 ...


原来原因是这样? 向楼主学习一下,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

32#
发表于 2007-4-25 16:46:37 | 只看该作者
呵呵,谢谢了,刚好遇到这个问题,按上面的方法解决了。
回复 支持 反对

使用道具 举报

该用户从未签到

33#
发表于 2007-7-2 14:20:21 | 只看该作者

多谢楼主

我也遇到同样的问题,用Notepad编辑之后问题就解决了。
回复 支持 反对

使用道具 举报

该用户从未签到

34#
发表于 2007-10-22 11:08:41 | 只看该作者
只有用notepad这一种办法吗?
因为vbs主要在PrimalScript或UltraEdit里编辑,总不能每编辑一次就用notepade重新保存一下吧?可不可以在编辑器里设置啊?

试了一下,在前面加一句On error resume next就可以照常跳过并能读取vbs里的内容了。
回复 支持 反对

使用道具 举报

该用户从未签到

35#
发表于 2007-10-22 14:50:33 | 只看该作者

回复 34# 的帖子

其实应该是只要不用QTP的Function Library来编辑、保存脚本就没啥问题,因为这样保存下来的VBS文件是Unicode编码。这也是QTP的一个BUG。。。参见http://bbs.51testing.com/viewthread.php?tid=89039&page=1
而使用PrimalScript或UltraEdit工具编写的vbs是没啥问题的,至少我这里保存的脚本都是ANSI的~
回复 支持 反对

使用道具 举报

该用户从未签到

36#
发表于 2007-10-22 15:53:34 | 只看该作者
嗯,在PrimalScript的文件 => 属性里就有脚本编码的设置,可以改为ansi的。UltraEdit还没找到在哪设置
回复 支持 反对

使用道具 举报

该用户从未签到

37#
发表于 2007-10-22 16:42:14 | 只看该作者
UltraEdit的保存默认编码就是ANSI了,当然也可以将默认改为Unicode,下图中的第一个打勾的选项就是,去掉那个勾就默认是ANSI了~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

38#
发表于 2007-10-22 16:42:24 | 只看该作者
UltraEdit的保存默认编码就是ANSI了,当然也可以将默认改为Unicode,下图中的第一个打勾的选项就是,去掉那个勾就默认是ANSI了~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

39#
发表于 2007-10-22 17:36:33 | 只看该作者
O!明白了,多谢!
回复 支持 反对

使用道具 举报

该用户从未签到

40#
发表于 2008-6-13 17:22:31 | 只看该作者
我机子上也出现该问题,请问你是怎么处理的
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 15:20 , Processed in 0.084933 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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