VbsEdit 3.4.1.32

2010年09月14日   By Demon   44,397 views

虽然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破解版的放到网站上,想要的时候就不用到处找了。

getElementsByName的用法

2010年09月4日   By Demon   11,307 views

最近在写一个网页采集的程序,无奈那个网页写得太烂,里面的标签连ID都没有,用不了getElementById。幸好还有name属性,用getElementsByName就行了。

<input type="text" name="username">

然后就可以使用

getElementsByName("username")(0)

来获取这个对象

Ubuntu查看系统运行时间

2010年09月3日   By Demon   17,222 views

输入命令

uptime

给出下列信息的一行显示。当前时间,系统运行了多久时间,当前登陆的用户有多少,以及前1、5和15分钟系统的平均负载。

参考链接:Ubuntu Manpage: uptime

用VBS获取屏幕分辨率

2010年09月2日   By Demon   22,100 views

我想到的方法有两种。

一种是WMI中的Win32_DesktopMonitor类

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor",,48)

For Each objItem in colItems
	WScript.Echo "ScreenHeight: " & objItem.ScreenHeight
	WScript.Echo "ScreenWidth: " & objItem.ScreenWidth
Next

一种是HTML DOM中的screen对象

Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate "about:blank"
Set screen = IE.Document.parentWindow.screen
WScript.Echo "ScreenHeight: " & screen.height
WScript.Echo "ScreenWidth: " & screen.width

参考链接
  1. Win32_DesktopMonitor Class
  2. screen Object

在C语言中嵌入执行VBS

2010年08月31日   By Demon   27,342 views

曾经在AoGo汇编小站上看到过一个在汇编中运行VBS的函数库,觉得很神奇,但是没有给出源码,不知道他是怎么实现的。直到知道了VBS中的MSScriptControl.ScriptControl对象,VBS中的对象其实就是COM组件,但当时却不知道如何在C语言中调用COM,只好作罢。现在知道后,一切水到渠成。

用OLE View打开ScriptControl的类型库

C:\Windows\system32\msscript.ocx

得到msscript.idl,然后通过midl得到.h和.c文件

midl /no_warn /h msscript.h msscript.idl

将得到的msscript.h和msscript_i.c添加到工程中,就可以在C语言中嵌入执行VBS语句了。