2010年09月 存档

SDK编程中的窗口居中

2010年09月19日,星期日

MFC程序中调用CWnd::CenterWindow就可以实现窗口居中,但是纯SDK编程中没有CenterWindow这个函数,需要自定义一个。Google到一个比较好的实现。

(更多…)

用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放到“我的文档”根目录下再运行代码就不报错了。

VbsEdit 3.4.1.32

2010年09月14日,星期二

虽然VBS可以用记事本来写,但是用记事本写实在是太痛苦了。看过那么一句话:用记事本写代码的不是神就是疯子。

《Advanced VBScript For Microsoft Windows Administrator》一书中推荐了4种VBS编辑器

  1. AdminScriptEditor
  2. OnScript
  3. PrimalScript
  4. VbsEdit

这4种编辑器我都试用过,可以说各有特色,但是我还是最喜欢VbsEdit。因为VbsEdit占的空间很小,才几M,而且还是共享软件,即使不付费不破解也可以使用,只不过在调试的时候不大方便而已。把这个VbsEdit 3.4.1.32破解版的放到网站上,想要的时候就不用到处找了。