VB调用URLDownloadToFile函数下载文件(带进度条)

2011年02月13日   By Demon   17,741 views

今天有个朋友问我VB调用API函数URLDownloadToFile可不可以获取已下载的大小,也就是如何获取下载的进度。

根据MSDN文档,调用函数时要提供第5个参数,即一个指向IBindStatusCallback接口的指针,才能获取下载进度。我对VB也只是略知一二,仅限于与VBS共通的部分,当然不知道用VB怎么实现IBindStatusCallback接口,只好Google了。

Google了半天,总算找到了靠谱点的答案。一篇名为《使用了IBindStatusCallback的URLDownloadToFile函数》的文章,引用如下:

hoho,不好意思搬了一下MSDN。关于这个函数的VB实现,网上已经有很多例子了,不过这些例子都没有使用最后一个参数。近日看到CSDN上有兄弟提问,于是便花了一些时间做了个下载的例子。如果有什么不懂的地方请跟帖…… ^_^

原网站的SEO好像做得不是很好,比较难搜索到(要学会用不同的关键字)。不过代码是很好的,喜欢VB的朋友可以下载来看一下,应该会有所收获。至少对我这样的VB菜鸟而言,里面有好多东西都第一次见过,惭愧。都说VB很简单,但是真正精通的人,又有几个?

在C语言程序中嵌入Lua脚本

2011年02月10日   By Demon   32,149 views

第一次知道Lua语言,是上个月在书城的时候,看到一本名为《魔兽世界编程宝典》的书。心想,魔兽世界还能编程?难道是自己编一个魔兽世界出来?翻开一看,原来是编写插件,用的是一种叫Lua的脚本语言。只可惜我不玩魔兽世界,当然不会对开发魔兽世界插件感兴趣。最近在玩愤怒的小鸟,无意中发现这个游戏的地图和配置文件都是用Lua来写的,得了多少分、过了多少关等等完全可以通过修改相应的Lua脚本文件来作弊。于是心血来潮稍稍学习了一下Lua语言。

阅读这个条目剩下部分 »

C语言中的round函数

2011年02月8日   By Demon   26,947 views

C语言标准库中有没有round函数?答案是,可能有,也可能没有。这取决于你使用的编译器,更准确地说,是编辑器是否支持C99标准。

让我们简单回顾一下C语言标准的历史:C的第一个标准是由美国国家标准协会(ANSI)发布的。虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版也被ANSI采纳了,但名称ANSI C(而不是 ISO C)仍被广泛使用。

阅读这个条目剩下部分 »

用VBS监视进程创建和删除

2011年01月27日   By Demon   19,375 views

微软脚本中心里的例子,用到了WMI事件,抄下来备查。

监视进程的创建,在每次创建新的进程时,临时事件消费程序都发出警报。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService. _
    ExecNotificationQuery("select * from __instancecreationevent " _
        & " within 1 where TargetInstance isa 'Win32_Process'")
i = 0
Do While i = 0
    Set objLatestProcess = colMonitoredProcesses.NextEvent
    Wscript.Echo objLatestProcess.TargetInstance.Name
Loop

监视进程的删除,在每次进程终止时,临时事件消费程序都发出警报。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService. _
    ExecNotificationQuery("select * from __instancedeletionevent " _
            & "within 1 where TargetInstance isa 'Win32_Process'")
i = 0
Do While i = 0
    Set objLatestProcess = colMonitoredProcesses.NextEvent
    Wscript.Echo objLatestProcess.TargetInstance.Name
Loop

参考链接:

  1. 监视进程的创建
  2. 监视进程的删除

Windows 7 快速共享Internet无线网络

2011年01月23日   By Demon   9,968 views

微软帮助和支持上的。http://support.microsoft.com/kb/976507/zh-cn