Реєстрація типу файлів для нового додатка
Якщо ви плануєте асоціювати один або більше типів файлів з новим додатком, то ви зобов'язані створити новий ProgID для кожного типу файлів, який ви хочете асоціювати з додатком.
Щоб створити ProgID для кожного унікального файлового типу, яке обробляє ваше додаток:- Зауважте, що деякі файлові типи мають багато розширень, який вказує на один ProgID. наприклад:
- HKEY_CLASSES_ROOT \ App.jpeg (ваш ProgID)
- HKEY_CLASSES_ROOT \ .jpg = App.jpeg (проектування розширення на ProgID)
- HKEY_CLASSES_ROOT \ .jpeg = App.jpeg (проектування другого розширення на той же ProgID)
- Вам потрібно видаляти всі значення ProgID з реєстру, коли ви видаляєте свій додаток.
- Залишайте файлові асоціації незмінними під час видалення програми. Це буде працювати нормально, тому що система пізнає випадок, коли значення ProgID відсутня і просто ігнорує його. Якщо ви будете так робити, то уникнете складного коду перевірки, який видаляє проектування розширення на ProgID тільки, якщо ніяке інше додаток не змінило асоціацію типів після установки вашого.
- Вказуйте унікальне значення для опису файлового типу для кожного ProgID:
- Або залиште значення за замовчуванням для ProgID порожнім, що призведе до використання системи опису ".ext файл".
- Або надайте локалізоване значення через FriendlyTypeName і, для сумісності зі старими програмами, які читають безпосередньо з реєстру. значення за замовчуванням для ProgID (використовуйте те саме значення, що і в FriendlyTypeName англійською).
Елементи програмного ідентифікатора, використовувані файловими асоціаціями
З'єднати ProgID повинен включати наступні елементи. Зауважте, що деякі строкові дані в цьому ключі вимагають особливого форматування.
AppUserModelID (Windows 7 і вище)
Встановіть в це необов'язкове значення ідентифікатор моделі користувача додатки (Application User Model ID, AppUserModelID), якщо додаток використовує явний (explicit) AppUserModelID і використовує або автоматично згенеровані системою Jump-списки Недавні або Часто використовувані або надає свій Jump-список. Якщо додаток використовує явний AppUserModelID, але не встановлює це значення, то елементи не будуть з'являтися в Jump-списках цього додатка. Це рядок типу REG_SZ. Для подальшої інформації - див. Application User Model IDs (AppUserModelIDs).
Встановіть це необов'язкове значення, використовуючи прапори з перерахування FILETYPEATTRIBUTEFLAGS. Запис EditFlags контролює деякі аспекти в обробці типу файлу, асоційованого з цим ProgID, Оболонкою. Ви також можете використовувати запис EditFlags, щоб обмежити можливість зміни деяких аспектів цих файлових типів користувачем. Значення FILETYPEATTRIBUTEFLAGS, використовувані для EditFlags, є двійковими значеннями, призначеними для комбінування з використанням логічної операції АБО. Це значення може мати тип REG_DWORD або REG_BINARY.
Встановіть в цей запис назва типу файлів (friendly name) цього ProgID, придатного до показу користувачеві. Для узгодженості - тут повинні бути ті ж дані, що і в значенні за замовчуванням (див. Вище). Цей запис може бути типу REG_SZ або REG_EXPAND_SZ, але повинна бути оформлена як непряма рядок (indirect string) - тобто повне ім'я файлу і значення ресурсу, з веденим @, наприклад: @% SystemRoot% \ shell32.dll, -154.
Встановіть в цей запис короткий опис, яке Оболонка буде показувати для цього ProgID. Запис InfoTip показується, коли користувач затримує миша над файлом цього типу. Це значення може мати тип REG_SZ або REG_EXPAND_SZ, але, як і FriendlyTypeName, воно повинно бути непрямою рядком.
Встановіть запис за замовчуванням цього підключа на найостаннішу версію ProgID.
Примітка. якщо тільки ви не розробляєте side-by-side додаток (тобто додаток, яке допускає одночасну установку декількох своїх різних версій на одну машину), то вам не слід використовувати запис CurVer.
Встановіть значення за замовчуванням цього підключа в іконку за замовчуванням, яку ви хочете показувати для файлових типів, асоційованих з цим ProgID. Це значення може бути або REG_SZ, або REG_EXPAND_SZ, але воно повинно мати формат повного імені файлу зі значенням ресурсу через кому, наприклад:% SystemRoot% \ shell32.dll, -154.
Наступний приклад ключів в реєстрі ілюструє ProgID файлової асоціації:
Використання версійність програмних ідентифікаторів
Версійність ProgID - це такий ProgID, у якого в його імені вказана версія. Зазвичай це робиться додаванням точки і номера версії до імені ProgID. наприклад:- Word.Document.6
- Word.Document.8