重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
VB.Net中提供了ProgressBar控件,用于显示进度条
员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联建站坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供成都网站建设、成都网站设计、微信公众号开发、电商网站开发,小程序制作,软件定制开发等一站式互联网企业服务。
我建议你不要用进度条显示剩余时间而是显示执行进度
这样比较好控制
设置ProgressBar的Minimum和Maximum属性为循环的起始和终止数值
然后在代码的循环体中计算当前循环的进度,然后设置进度条的Value属性,
将进度显示在进度条上
比如,简单的例子:
Dim Progress As Integer
ProgressBar1.Minimum = Min
ProgressBar1.Maximum = Max
For i As Integer = Min To Max
'执行计算.......
Progress = i \ Max '计算进度
ProgressBar1.Value = Progress '显示进度
My.Application.DoEvents() '使用Doevents防止窗体假死使进度条看不到,但是会严重降低运行速度
Next
这里的优化技巧是,可以设置为每隔N次循环才更新进度条
If Not Progress Mod N Then ProgressBar1.Value = Progress
不然进度条的更新也许比计算的速度还要慢很多
一、用wshshell组件的RegWrite方法写注册表,在HKEY_CLASSES_ROOT\*\Shell 位置加入的你程序,
例如:
[HKEY_CLASSES_ROOT\*\shell\我的程序\command]
@="D:\\我的程序.exe %1"
后面的%1会将文件名传送给你的程序的Command$,多文件名需要使用DDE方式进行互斥传入。
二、
将下面内容输入记事本后保存为reg文件,运行即可:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\OpenInNotepad]
@="用记事本打开"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\OpenInNotepad\command]
@="notepad.exe %1"
"用记事本打开" 为右键菜单中显示的名称
这个问题可以用注册表解决。
Function getOpenCommand(fileExt As String) as String
Dim fileType as String, openCommand as String
fileExt = "." + fileExt
'取得文件扩展名在注册表里的文件类型名称
'比如.zip的类型名称一般是zipfile
fileType = 读取注册表的classes_root下的子键(fileExt)的默认键值
'取得打开这种文件的程序
openCommand = 读取注册表的classes_root下的子键(fileType + "\shell\open\command")的默认键值
Return getOpenCommand
End Function
读取注册表的HKEY_CLASSES_ROOT下的子键的默认键值的方法可以在网上搜索到。
这样getOpenCommand("doc")就可以得到一个字符串(包括引号):
"C:\Program Files\Word\word.exe" "%1"
这里只需要用Spilt函数把C:\Program Files\Word\word.exe分离出来就好了