|nbrane: What are the problems it poses?|
Usability/Multitasking: Since SendKeys sends messages to the active application, the user cannot actually use his computer while your script/program is running.
Predictability: All versions of SendKeys are prone to timing issues. Partly because it doesn't force the programmer to do any validation, partly because the .NET variant can switch implementations on you as it deems necessary.
Reliability: Older versions of SendKeys (VB6 and down, probably VBS and VBA as well) get blocked by UAC. This means your program/script can't be run reliably on Vista or Win7. If you use VB.NET's SendWait, it's behavior will break, again, dependent on the state of UAC.
Readability: You're sending a series of key presses, so it can be hard to go back and see what the original intent was when you wrote the script/program.
nbrane: I am ignorant of this interface