Thinking of the trials for commercial software out there, there are other ways of limiting trial versions. For example some regularly put prompts up when you run the program, that won't close for 5 seconds or so. Others turning off some critical feature, of which the best example is probably file recovery software that tells you what files it can recover but won't actually recover them until it's bought.
In some cases a 30 day trial isn't ideal because the person only actually wants the software for a one-time purpose, and will uninstall it forever within 30 days.
The proposal of recording and hiding a time stamp of when the program was last used is a good one, and most people won't think to start fiddling the clock at all until they've gone past the time limit and are blocked out. The one other thing that might make sense to me would be having your program check the time against an external time server, though I don't know how feasible that is. Just thinking out loud as it were, but some of it might be helpful.