I you want to be safe for future versions of Windows, better use WMI.
If you are not thinking beyond Windows 7, I recommend the WinAPI functions (OpenSCManager and ChangeServiceConfig come to mind). I find them easier to understand, and there are tons of code examples on how to use them. WMI on the other hand is still new, and not as well documented.
Just never, ever, edit the registry directly. The WinAPI or WMI interfaces exist to abstract the task from the way Windows handles the data internally. Bypassing them brings the biggest risk of breaking in the future.