Oh! That's fine I suppose, but you're converting a point's XYZ into a string to pass to the SendKeys method. The accuracy is not going to be a good as when you pass the value directly from lisp through the command/vl-cmdf functions.
Also you don't prefix the point with the forced None object snap. Though I'm unsure why I've never had such a problem with using M2P instead.