Можно посмотреть на то, как это делает Steam. При установке их приложения оно регистрируется как обработчик URLов с схемой "steam://". И затем, при нажатии в браузере на ссылку, например "steam://run/8930", браузер вызывает нужное приложение. Но это, разумеется, потребует от клиента установки вашего приложения, просто так из браузера — только как писали выше, через ActiveX (с ограничениями безопасности и т.д.)
А если для картинки динамически создавать iframe с ней, и если не пришло событие из айфрейма о том, что картинка загрузилась, то удалять айфрейм вместе с картинкой? Сейчас попробовал — при удалении айфрейма, загрузка картинки останавливается.