well
if you are saying that your program only need about a minute to do what it has to do, idon't think that the user will really care that the progress bar i EXACTLY at the point in which the code is so i have two ideas:
Firstly :
look at the code of your program and try to slice it into a big number of slices (maybe 100) so that each slice takes about the same time as the other slices
set the progress bars' min to 0 and max to the number of slices (100 in my example)
now at the begining of the code add
(where ProgressBar is the name of your progress bar)
and after each slice of code add
VB Code:
ProgressBar.Value = ProgressBar.Value + 1
DoEvents
(if you find this code is slow delete DoEvents)
and if you find that a slice takes twice time of each of the other slices you can put after this slice
VB Code:
ProgressBar.Value = ProgressBar.Value + 2
DoEvents
and soo on ...
Secondly:
try to find out exactly how much of time your program takes
at the declarations add the declaration of GetTickCount and add
VB Code:
Dim IntTick
Dim TimeTaken
Dim AllTime
at the begining of your code add
VB Code:
IntTick = GetTickCount
AllTime = 'Put here the time your application needs to load in milliseconds
now in your code add each 10 lines (As example)
VB Code:
TimeTaken = GetTickCount - IntTick
ProgressBar.Value = TimeTaken / AllTime
hope that this will help