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

2010年09月26日   By Demon   42,222 views

其实用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

JavaScript的Trim函数有12种写法,你可知道么?

2010年09月25日   By Demon   26,119 views

昨天那个在线生成EditPlus注册码的JavaScript脚本要用到Trim函数,Google了一下,竟然有那么多种实现,而且效率也不一样。

具体的自己看看参考链接吧,下面只给出最常见的一种

return str.replace(/^\s+|\s+$/g, '');
参考链接:
  1. Faster JavaScript Trim
  2. Fastest JavaScript Trim
  3. JavaScript trim函数大赏

EditPlus注册码在线生成

2010年09月24日   By Demon   504,999 views

虽然我写的EditPlus注册机没有病毒,但是谁信呢,还是弄个EditPlus注册码在线生成吧。

注意不支持中文字符,我懒得用正则表达式验证了。

Username:

Regcode:

EditPlus注册机及其算法

2010年09月23日   By Demon   64,530 views

一切源于正则表达式。EditPlus之支持部分正则表达式,我想找一个对正则表达式支持比较好的代码编辑器。不小心点了EditPlus的Check Latest Version菜单,发现最新版EditPlus是3.20,而我的是3.12。查看了一下更新的内容,很失望的发现没有和正则表达式有关的内容。没有就没有吧,我还是要更新的。

下载了最新版的安装文件,安装。打开EditPlus,提示需要注册码。以前都是随便Google一个填上去就完了,但是这样EditPlus中写的授权都是别人的ID,看着不爽。于是搜索了一下有没有注册机,别说,还真有。但是以前下过的有些注册机是带病毒的,在我的电脑还有杀毒软件的时候,有个注册机直接把卡巴斯基干掉了。更何况现在电脑处于裸奔状态,注册机的病毒想搞破坏那是再简单不过了。

Google关键词“EditPlus 注册机”的时候竟然还搜索出了与“EditPlus 注册机源码”有关的内容。有源码就好办了,自己按照源码写一个呗。后来才发现那个注册码算法是错的,只生成的注册码的前5位,浪费我时间。

再后来,我反汇编了一个EditPlus注册机,花了一天时间才从中找出了注册码的正确算法。唉,没办法,水平太低了。

在VC中编译运行程序的小知识点

2010年09月21日   By Demon   16,375 views

1、Run-Time Library

Run-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。
我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。
C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run-Time库的大部分源代码。

C Run-Time Libraries有静态库版本,也有动态链接库版本;有单线程版本,也有多线程版本;还有调试和非调试版本。
可以在"project"->"settings"->"C/C++"->"Code Generation"中选择Run-Time Library的版本。

动态链接库版本:
/MD Multithreaded DLL                    使用导入库MSVCRT.LIB
/MDd Debug Multithreaded DLL       使用导入库MSVCRTD.LIB

静态库版本:
/ML Single-Threaded                       使用静态库LIBC.LIB
/MLd Debug Single-Threaded          使用静态库LIBCD.LIB
/MT Multithreaded                           使用静态库LIBCMT.LIB
/MTd Debug Multithreaded              使用静态库LIBCMTD.LIB

C Run-Time Library的标准io部分与操作系统的关系很密切,在Windows上,CRT的io部分代码只是一个包装,底层要用到操作系统内核kernel32.dll中的函数,在编译时使用导入库kernel32.lib。这也就是为什么在嵌入式环境中,我们一般不能直接使用C标准库。

阅读这个条目剩下部分 »