Для этого вы можете использовать PyWin32 http://sourceforge.net/projects/pywin32/ или ctypes.И ваш подход довольно хорошо.Вот простой пример для мыши с pywin32:
import win32api
import win32con
def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
click(10,10)
, а вот аналогичный пример с ctypes:
import ctypes
ctypes.windll.user32.SetCursorPos(10, 10)
ctypes.windll.user32.mouse_event(2, 0, 0, 0,0)
ctypes.windll.user32.mouse_event(4, 0, 0, 0,0)
Ctypes иногда сложнее определить и отладитьна MSDN), но это очень быстро.