If you are writing an add in, code in the StandardAddInServer.Activate will run every time that the add in starts. For example I can create a new add in from the template. I modify the StandardAddInServer.Activate by adding a single line of code to create a message box that says "hello." I am using C# but for VS and others, code in the Activate member will run at addin startup. You can use this approach to show the user a message box, form, or perform any action that you would like.
public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
{
// This method is called by Inventor when it loads the addin.
// The AddInSiteObject provides access to the Inventor Application object.
// The FirstTime flag indicates if the addin is loaded for the first time.
// Initialize AddIn members.
// TODO: Add ApplicationAddInServer.Activate implementation.
// e.g. event initialization, command creation etc.
m_inventorApplication = addInSiteObject.Application;
System.Windows.Forms.MessageBox.Show("hello"); //this show a message box every time the addin starts
}
Once you have the add in installed you need to make sure that you have set the add in to load automatically (Tools -> Add-Ins, check "Loaded/Unloaded" and "Load Automatically"). This will make sure that the add in loads when Inventor starts.

You can use this approach to show a message box or form to the user. Basically any code that you put in Activate() will be run every time the addin starts.