Что вы пытаетесь сделать? Вы могли бы:
- Вести список редакторов, которые вы ожидаете установить, и иметь записи в системном PATH (плохая идея)
- Имейте редактор / редакторы, которые вы хотите использовать, запросите реестр Windows, чтобы найти путь установки редакторов (используя
RegGetValue
), и запустите редактор с CreateProcess
) (немного лучшая идея)
- Запросите реестр, чтобы получить редактор по умолчанию для файла данного типа, а затем запустите этот редактор, используя
CreateProcess
. (лучшая идея)
Но все зависит от того, какова ваша цель на самом деле.
Редактировать на основании требований
Итак, мы просто находимся на той же странице, из C ++, вы хотите:
- Возьмите параметр командной строки в ваше приложение C ++ (имя файла)
- Открыть этот файл в произвольном редакторе
- Определить, когда пользователь внес изменения в этот файл
- Работа с содержимым файла
Это правильно?
Если это так, вы можете:
- Используйте Boost libs для вычисления CRC для текущих данных в файле
- Запустите редактор, используя один из методов, которые я первоначально описал
- Придерживайтесь узкого цикла и
sleep
, чтобы вы не жевали ресурсы, в то время как первоначально вычисленный CRC соответствует одному, вычисленному на каждой итерации цикла
Конечно, есть множество вопросов, с которыми вам придется иметь дело (это просто очень простой способ описания алгоритма, который я мог бы использовать), например:
- Что произойдет, если пользователь не изменит файл?
- Что произойдет, если файл не найден?
Я уверен, что есть ряд различных способов сделать это, но это самый простой метод, который я могу себе представить на данный момент (хотя я все еще могу быть достаточно уверен в изменениях).
Отказ от ответственности : я не реализовал что-то подобное, так что я мог бы быть совершенно не в себе;)