The first one I'm not sure because I don't know much about auto-injection and things like that. The other part I can help you with, I finished my VB classes last year and did my Java not too long ago.
So anyway, the second part you could do a few ways.
One way you could go about it is as follows:
A method that is called once every time the program loads.
This method adds +1 to a counter.
When the counter reaches 30, you call a method to lock the program.
The lock could be another window that pops up and doesn't close or closes the whole program when closed.
Or you could disable the entire window etc.
Another way would be to store the original date the program is opened in static final OPEN_DATE. (It's not going to need to be changed so it doesn't need to be a variable.)
You would then check on start through a method/function
if DateTime.Now >= OPEN_DATE
{
LockProgram();
}
This is a page for C# but you can get the idea and do the same thing in VB you would just change the syntax around a bit. Using Dim and all that good stuff, been a while since I've used VB, the logic is all the same though.
https://stackoverflow.com/questions/...he-application