易截截图软件、单文件、免安装、纯绿色、仅160KB

VB实现可执行文件运行时自删除

    有时,为了实现动态更新,我们需要对正处于运行状态的应用程序进行自删除,就像360安全卫士在线升级那样。但是,Windows是不允许删除正处于运行状态的应用程序的,怎么办?一般来说,我们可以使用两个程序来实现,一个专门负责版本检测和删除,一个才是业务需要的主应用程序。能不能将二者合二为一呢?答案是可以的,那就是使用BAT或VBS来进行。使用BAT,由于不能及时判断应用程序是否已经结束,于是人们通过降低其执行优先级别,让其晚于应用程序结束,从而达到删除目的,这种办法有时会造成删除失败,而使用VBS,可以利用Windows内置的COM对象,非常方便地判断应用程序是否结束,从而实现了真正意义上的自删除。不过相对于BAT,VBS也有一些缺点,那就是依赖性较强,而一部分计算机出于安全考虑,屏蔽了WSH功能,从而导致删除失败,从这一点来讲,反倒不及BAT方式了。
    本文的实现代码基于VBS,至于使用BAT文件,可以参考张正秋写的《Windows核心编程》一书,俺不再提供实现代码。
'* ******************************************************* *
'* 程序名称:DelMe.bas
'* 程序功能:在VB中实现应用程序自删除
'* 作者:lyserver
'* 联系方式:http://blog.csdn.net/lyserver
'* ******************************************************* *

Sub Main()
Call DelMe
End Sub

Public Sub DelMe()
Dim fn As Integer

On Error Resume Next
If App.LogMode Then
fn = FreeFile()
Open "del.tmp.vbs" For Output As fn
SetAttr "del.tmp.vbs", vbHidden
Print #fn, "Dim FSO,WMI"
Print #fn, "Set WMI=GetObject(" & Chr(34) & "winmgmts:\\." & Chr(34) & ")"
Print #fn, "Set FSO=CreateObject(" & Chr(34) & "Scripting.FileSystemObject" & Chr(34) & ")"
Print #fn, "Do While WMI.ExecQuery(" & Chr(34) & _
"SELECT * from WIN32_PROCESS WHERE NAME='" & App.EXEName & ".EXE'" & Chr(34) & ").Count"
Print #fn, "WScript.Sleep 1"
Print #fn, "Loop"
Print #fn, "FSO.DeleteFile " & Chr(34) & App


相关文档:

“自动点击按钮”小工具VB源码

“自动点击按钮”小工具VB源码
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Pri ......

VB逆向工程实战演习

没壳,没有Command Button,所有的内容都在Form_Load里。用VBDE查看,Form_Load在00406A90,打开W32dsm,载入Casino轮盘智能机器人,查找00406A90,反汇编代码如下:
Quote:
:00406A90 55                   &nb ......

再谈用VB无窗口透明Usercontrol编写透明浮动按钮

'* ************************************************************** *
'* 程序名称:Button.ctl
'* 程序功能:透明浮动按扭
'* 作者:lyserver,最后修改日期:2009年11月
'* 联系方式:http://blog.csdn.net/lyserver
'* ************************************************************ ......

在VB的类模块中使用定时器

    长久以来,由于不能直接获得VB类成员函数指针,因为无法在VB的类模块中直接使用定时器控件或定时器API,基于俺编写的获得类成员函数指针的函数,俺编写了这个带定时器功能的类,希望给朋友们一些启发。
    一、新建一个类,类名称为clsTimer,类代码如下:
Option Explicit
'* ** ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号