A "random safety statement"?! One time I'm told to wear shoes when walking in a cow pasture, another time I'm told to not play in traffic? Can I help make up these random safety statements?
You could put the message in an add-in's GetAddInInfo sub routine. That sub runs the first time the user logs in after an Explorer reset.
Here is an example of how to send users a message.
As for determining when a user logs in, I'm not sure what event you could hook into for that.
I'm pretty new to add-ins so I may wrong, but I think with add-ins the code is not typically accessible before the user is logged-in, so I'm not sure how this would work. The AddHook method allows you to add event listeners, but it looks like most of the exposed events would only be able to happen once a user is logged in. Possibly of interest is EdmCmd_InstallAddIn
EdmCmd_InstallAddIn 23 = The add-in is being installed
I don't see any further info that says when the add-in is typically installed, so I'm not sure if this is event is triggered when you use the Administration tool to add a new add-in, or if this is something that is triggered every time a user logs in and the client has to retrieve and install the add-ins from the server?
Maybe you could experiment with it.
You might have better luck with a standalone program, but again I'm just not sure if there is a login event exposed that you could hook into.
I hate to suggest it, but a down and dirty way might be to create a wait loop that is not exited until the IsLoggedIn property evaluates to true.
Something like this (note: untested code, just throwing it out there as a possibility)
Dim VaultInstance As IEdmVault5 = New EdmVault5() Do While Not VaultInstance.IsLoggedIn Do Events Loop `The rest of your code below is not accessed until the condition evaluates true