In answer to your first question, the easiest way to limit the app to only running for one year is to include a hard coded expiry date and only allow the software to run if the current date is before this date. Then in one year re-compile the software with a new later expiry date and ship this out to your customers again.
Code:
Const EXPIRY_DATE As Date = "2005-01-08"
Sub Main()
If Now >= EXPIRY_DATE Then
MsgBox "Software has expired"
End
Else
'Continue loading software
...
You could also include this expiry date in a hidden file, then when the software expires the user will have to enter a code, if this code is correct then change the date in the file. There are plenty of other ways of doing this. For example you could use some form of licensing where you supply a licence value with an expiry date some how included in the code, then when the current date is after this date the client must enter a new licence value. Try searching for
Encryption and
Licensing on the net.
In answer to your second question, this is relatively easy, when you log on the password is checked and if it is a client password then only show the client menus, otherwise show the developer menus as well.
Code:
If Password = Developer Password then
mnuDeveloper.Visible = True
Else
mnuDeveloper.Visible = False
End If
This could adapted to several other menus and passwords if required.
Regards
Owain Williams