The string "A/autotest.m" suggests another way to run scripts
After taking a look at the related code, I found it.
SET + RIGHT at the same time (press and hold SET then press RIGHT), in rec mode (!). It blocks the UI just like launching extend.m . Only tested on a490 and ixus115 so far. Script can be executed multiple times.
edit:
On a490, following script does seem to work completely (shutter button states appear to return to 'unpressed' at the end), and a picture is taken. The events are queued and are executed after the script finishes. Adding more button events does not work.
private sub Initialize()
System.Create()
UI.CreatePublic()
Wait(1000)
ExecuteEventProcedure("PostLogicalEventForNotPowerType",0x9a1,0) 'PressSwOne
ExecuteEventProcedure("PostLogicalEventForNotPowerType",0x9a3,0) 'PressSwTwo
ExecuteEventProcedure("PostLogicalEventForNotPowerType",0x9a4,0) 'UnpressSwTwo
ExecuteEventProcedure("PostLogicalEventForNotPowerType",0x9a2,0) 'UnpressSwOne
end sub
There are a few event procedures that can shoot. The most promising one, UIFS_Capture, seems to use keypress events and may suffer from the same issue as the above test script (its parameters are not trivial, so I did not try executing it).
Maybe starting with set means it runs in the same task that processes logical events, so the whole script runs while handling the "set" press?
That would be my guess too. The Canon UI code runs in context of the CtrlSrv task, which happens to process the keypress events - when the script finished.