Теоретически на любом языке можно сделать все - тобишь решить любую алгоритмическую задачу. Вопрос только в сложности и скорости.
А если вы про всякие API взаимодействия с ОС, сервисами и прочим - то ответ почти не меняется. Можно на очень большом проценте языков написать требуемый функционал. Вопрос - скорость и удобство.
Зависит от ваших знаний. Выше вон писали про C# - да, норм вполне. Плюсы с Qt - если никогда не писали на плюсах - то после веба взвоете. Можете попробовать питон с wxPython-гуем.
Считаете хеш каждого файла. Если такой хеш уже встречался - даете такое же имя как и раньше давали такому же хешу. Если не встречался - даете новое имя.
Новое имя генерируете простейшим инкрементом. Т.е. первый файл - "0". Второй файл - "1". Третий файл - "2". Десятый файл - "a".
Такой подход не рационален, если вам надо будет в последствии определять, есть ли уже файл с таким хешом, т.к. имя файла не отражает хеш. Но в условии об этом ни слова. Ну и в крайнем случае можете хранить таблицу "хеш-имя".
Ну самая большая проблема - фреймрейта IP камеры может быть недостаточно. Выяснить можно наверное только экспериментальным путем. Плюс немного смущает то, что камера может постоянно терять/ловить фокус (грубо говоря на объект сфокусировалась - внезапно объект проехал дальше - фокусируется на фон - и тут новый объект приехал). В остальном - ИМХО нормальная идея, почему бы и нет.
Как разрешить приложению доступ к этим веткам реестра?
Это решает не программист, а политики безопасности конкретного компа.
Обязательно ли для этого применять к приложению права администратора? (и если да - то как избавится от окна безопасности при каждом запуске приложения)
Необязательно - опять таки см. политики безопасности. Вы никак не избавитесь от окна безопасности со стороны приложения. Только со стороны конкретного компа.
Раз вы задаете такой вопрос - значит вы не свободно владеете этими языками.
Это означает что при написании любой задачи у вас не будет возникать вопроса "как реализовать это на этом ЯП". Если проводить аналогию с иностранными языками - вы сможете любую возникшую в вашей голове мысль сказать на иностранном языке. Суть свободного владения - при разработке язык разработки вас не тормозит. Тормозят сложности алгоритмов, структуры проекта или чего то подобного.
Откройте для себя VisualAssist/ReSharper. Крайне полезные вещи для ускорения. Учите горячие клавиши, в т.ч. и стандартные студийные. Расположите окна оптимально.
Ну а чтобы советовать что то более конкретное - нужно знать что конкретно у вас медленно происходит.
Региональные настройки компа какие? Вообще в собранном приложении эксепшны будут на языке локальных настроек (по крайней мере должны быть), но:
1) Не факт что поддерживается русский
2) Зачем оно надо - на английском самые информативные сообщения.
У вас немного некорректно поставлен вопрос. VisaulStudio - это просто меганавороченный блокнот. Ей все равно, пишете вы игру, сервер, веб-приложение или еще что то, лишь бы на знакомом ей языке. По сути ваш вопрос должен был звучать как "можно ли создать игру только средствами c#". Ответ - можно, но долго и непроизводительно. Если жесткое ограничение по языку - используйте Unity. Если жесткое ограничение по "не устанавливать ничего кроме IDE (VisualStudio)", то смотрите в сторону c++ оберток над openGL.