Best Way to Trigger and Download Images from Canon Cameras via USB?

I explored several methods to trigger a 35mm camera connected via USB:

1- ICCameraDevice: Unable to make it work with Canon cameras (details).

2- Canon's EDSDK: Works but is complex to implement.

3- gPhoto2 (command-line): Simple to use but requires gPhoto2 to be installed.

In your opinion, what is the most efficient way to trigger and download images via USB from Canon cameras?