文章关键字 ‘VBS’

VBS实现UTF-8转Unicode(UTF-16)

2010年09月27日,星期一

本文源于一个VBS群里的一个看起来很牛逼的人给别人的一个UTF-8转Unicode的函数Utf8ToUnicode。代码有60多行,放在了文章后面,以免喧宾夺主~

代码太长了,不知道是他自己写的还是复制粘贴的。我没有仔细看,但是简单测试了一下,貌似是正确的。

当时回了一句“Utf8ToUnicode函数哪需要这么复杂”,谁知他来了句“如果用api的话,当然一个了。”

算了,看在他的代码功能是正确的份上,我就不多说什么了。下面给出我写的自以为比他的简单的Utf8ToUnicode函数。 (更多…)

VBS中的GUI界面(EditPlus注册机)

2010年09月26日,星期日

其实用VBS也可以写出很漂亮的用户界面,大体上有两种方法,一种是HTA,一种是InternetExplorer.Application。这两种方法都是基于html的,也就是说,网页可以做得多漂亮,我们的界面就可以做得多漂亮。

虽然用HTA可以超越浏览器对脚本的禁锢,但是我不喜欢,还是喜欢纯VBS。所以只简单的说一下用InternetExplorer.Application创建GUI。

首先我们要创建一个InternetExplorer.Application对象

Set IE = CreateObject("InternetExplorer.Application")

然后打开一个空白页面about:blank,并把ToolBar设为False(不显示工具栏),StatusBar设为False(不显示状态栏),Visible设为True。

IE.Navigate "about:blank"
IE.ToolBar = False
IE.StatusBar = False
IE.Visible = True

剩下的就是网页设计的事情了,用Document的write方法写入html代码。

IE.Document.write "<input type='text' />"
IE.Document.write "<input type='button' value='OK' />"

就像设计网页一样设计我们的界面就行了,下面给出一个示例。用VBS写的带GUI界面的EditPlus注册机。

参考链接:

  1. 如何使用 InputBox 来屏蔽密码?
  2. InternetExplorer Object

用VBS实现PHP的SHA1函数

2010年09月18日,星期六

有了这个,VBS版的六维空间作弊工具就可以完成了。

依然是CAPICOM。

Function sha1(str, raw_output)
	Dim HashedData, Utility
	Set HashedData = CreateObject("CAPICOM.HashedData")
	Set Utility = CreateObject("CAPICOM.Utilities")
	HashedData.Algorithm = 0
	HashedData.Hash str	
	If raw_output Then
		sha1 = Utility.HexToBinary(HashedData.Value)
	Else
		sha1 = HashedData.Value
	End If
End Function

在64位系统中使用CAPICOM

2010年09月17日,星期五

最近把系统换成了windows 2008 r2,然后capicom就不好使了。据我所知,不存在64位版本的capicom.dll。

虽然capicom.dll是32位的dll,但是仍然推荐将其放到%windir%\syswow64文件夹而不是%windir%\system32文件夹。

下面是在x64系统上使用capicom.dll的步骤:

  1. 把capicom.dll复制到%windir%\syswow64文件夹
  2. 输入命令:

    %windir%\syswow64\regsvr32.exe %windir%\syswow64\capicom.dll

  3. 然后写个简单的vbs测试一下

    Set HashedData = CreateObject("CAPICOM.HashedData")

不出意外的话就可以使用了。

参考链接:RE: CAPICOM – Windows Server 2003 R2 64 bit – OLE automation error

Workbooks.Open中的相对路径

2010年09月16日,星期四

很少用到excel.application对象,所以不是很有研究。

碰到Workbooks.Open打开文件时使用相对路径会出错的问题,例如包含下面代码的VBS文件和data.xls在同一目录下

Dim oExcel
Set oExcel = CreateObject("excel.application")
oExcel.Visible = True
oExcel.Workbooks.Open "data.xls"

运行却会报错

无法找到“data.xls”。请检查文件名的拼写,并检查文件位置是否正确。

如果您正试图从“文件”菜单上最近使用的文件列表中打开文件,请确认文件未被重命名、移动或删除。

看来相对路径相对的不是vbs文件的路径,那么到底是相对哪里的路径呢?答案是“我的文档”,把data.xls放到“我的文档”根目录下再运行代码就不报错了。