在Vista系统下卸载无用动态链接(通用2篇)
篇1:在Vista系统下卸载无用动态链接
一般的注册表清理都有这样一个功能就是卸载没有用的动态链接,其实实现技术并不时很深噢只要稍微修改一下注册表就可以实现了。
具体步骤如下:
(1)win+r运行输入regedit进入注册表。
(2)依次打开至:HKEY_LOCAL_MACHINESOFTWARE MicrosoftWindowsCurrentVersion ExplorerAlwaysUnloadDLL
注册表编辑器
(3)AlwaysUnloadDLL(字符串值)将其设为1,
大功告成。好像要重起机器。
资源管理器经常在内存中留下无用的动态链接说实话这是很浪费资源的!
篇2:在Vista系统下卸载无用动态链接
用VB开发软件, 有时会碰到控件的实际使用数量不确定的情况。比如, 在开发学校考勤系统时, 用一个复选框代表一个学生的学号, 教师点名时以班级为单位进行考勤, 班级有多少人就需要显示多少个复选框, 然而每个班级的学生数不一定相同, 这时候如何实现在一个窗体中灵活地显示各个班级的名单呢?
可以预先创建一批复选框, 比如50个, 将实际超过班级人数部分的复选框禁用或隐藏起来, 然而当出现特殊情况班级人数超过50个时, 就需要修改软件添加新的复选框。这种方法增加了维护成本, 不是最优的方法。要使软件能灵活适应实际需求, 即根据实际情况动态创建不同数量的复选框, 我们就要用到动态创建与卸载控件的方法。
1 动态创建与卸载控件方法
(1) 控件数组的动态创建与卸载。
创建控件的方法:首先, 创建一个控件如复选框checkbox, 并修改其index属性值为0, 表示这是控件数组的第一个控件checkbox (0) , 然后在按钮的click事件中添加代码:
Load Me.checkbox (i)
其中, i表示控件数组checkbox的下标, 从1开始分别动态创建控件checkbox (1) 、checkbox (2) 、checkbox (3) ……这些控件除了Visible属性值为false, index属性值分别为各自的数组下标, 其它属性都相同, 同时这些控件还可以共享同一个事件过程, 方便编程。
卸载控件的代码:Unload checkbox (i) 。
(2) 控件集合的动态创建与卸载。
控件集合用到controls集合的两个方法:add () 和remove () 。语法格式分别为:
Set mycontrol =controls.Add (ProgId, Name, [Container])
Controls.Remove “控件名”
但是, 这种创建控件方法需要人工指定相应的属性值, 并通过WithEvents指定控件的事件。
通过对比以上两种方法, 开发学校考勤系统中碰到的班级名单情况不一的问题, 用控件数组的方法解决比较合适。因为, 复选框的一些属性值都要符合一定的规律, 比如位置、名称, 同时系统还需要对复选框进行循环读取, 所以, 采用控件数组的方法更优。
2 实现过程
要实现根据选择的年级和班级动态创建一个指定班级的名单, 其中复选框caption值为学号号数, 如图1所示。
(1) 创建两个组合框combobox1和combobox2分别显示年级和班级, 即从数据库中读取数值并实现两个组合框的联动。这样选取这两个组合框的值便可以指定一个班级, 然后通过该班级查找数据库中的学生信息。查出学生号数之后, 通过循环动态创建复选框并修改位置, 使其按顺序排列显示出来。这里指定学生的号数为学号的最后两位, 比如学号08102, 表示2008级1班2号。
(2) 在窗体中创建一个复选框名称为stuIDchk, index值为0。
主要功能代码如下:
(3) 卸载之前动态创建的复选框。当改变班级时, 名单可能会变化, 因此需要先卸载原来动态创建的复选框, 根据新选择的班级情况动态创建复选框。卸载的功能代码如下:
将这段代码放置于getstuIDchk () 中代码的开始处, 便可实现更换班级名单的功能。
3 主要问题
然而, 在combobox1和combobox2的click事件中, 调用getstuIDchk () 过程进行程序调式时, 却提示“实时错误‘365’:不能在该上下文中卸载”。经多次调试以及查阅资料, 发现原因是combobox控件的click、change和dropdown事件中不能含有unload语句。但是这里又需要用到组合框, 所以只能通过第二方来运行unload语句。使用定时器Timer, 方法如下:
创建一个定时器timer, 进行初始化:
Timer.Enabled = False
Timer.Interval = 50 ‘该属性值越小越好
在combobox1和combobox2的click事件中添加语句:
Timer.Enabled = True
在定时器的事件中调用getstuIDchk () , 然后重新禁用定时器:
Call getstuIDchk
Timer.Enabled = False
重新调试程序, 运行成功。也可以使用其它方法, 比如, 在click事件中添加代码:SendKeys "{ENTER}", 通过combobox的KeyPress事件运行getstuIDchk () 也可解决该问题。
4 结语
在学校考勤系统的开发过程中, 通过应用动态创建与卸载控件的方法, 可以有效地节省系统资源, 同时也使得界面更加简洁美观, 让软件更加灵活地适应实际需求, 在维护阶段省去不少麻烦。
摘要:以学校考勤系统为例, 介绍了在VB中用动态创建与卸载控件的方法来解决软件实际使用控件数量不确定的情况, 以及解决无法在combobox的click等事件中动态卸载控件的问题, 使软件的灵活性更高、界面更加简洁。
关键词:VB,软件,动态,控件
参考文献
[1]沈祥玖.Visual Basic程序设计[M].北京:中国水利水电出版社, 2005.
[2]秦斌.visual basic6.0数据库系统开发与应用[M].北京:中国水利水电出版社, 2006.
[3]王福成.Visual Basic6.0数据库开发指南[M].北京:清华大学出版社, 2002.
【在Vista系统下卸载无用动态链接】相关文章:
“调教”磁盘,让Vista更在行04-09
让Vista自动清除虚拟内存页面文件05-01
理论与实践的系统链接05-11
动态水力平衡在变流量空调系统的应用分析11-15
动态系统理论在二语习得中的应用研究09-10
三维工业测量系统与工业摄影测量相结合在动态工业测量中的应用04-21
动态模拟系统05-10