-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Найти все пункты меню Создать?

Четверг, 17 Сентября 2020 г. 14:49 + в цитатник
navodri: Пытаюсь собрать в ListBox все расширения, которые отображаются в меню Windows "Создать". Все хорошо, но... Если большинство программ содержит ShellNew сразу после расширения:
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.txt\ShellNew

то пакет Microsoft Office прячет ShellNew еще глубже:
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.docx\Word.Document.12\ShellNew

Как мне найти и добавить такие ключи?


    procedure TForm1.Button1Click(Sender: TObject);
    var
    i: integer;
    iRes: integer;
    s: string;
    hTemp, hTemp1, hTemp2: HKEY;
    Buf: Pointer;
    BufSize: Integer;
    begin
    if RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar('SOFTWARE\Classes'), 0,
    KEY_READ, hTemp) = ERROR_SUCCESS then begin
    BufSize := 1024;
    GetMem(buf, BufSize);
    i := 0;
    iRes := ERROR_SUCCESS;
    while iRes = ERROR_SUCCESS do begin
    BufSize := 1024;
    iRes := RegEnumKeyEx(hTemp, i, buf, BufSize, nil, nil, nil, nil);
    if iRes = ERROR_SUCCESS then begin
    SetLength(s, BufSize);
    CopyMemory(@s[1], buf, BufSize);
    //Если нашли ShellNew - добавляем запись в ListBox1
    if RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar('SOFTWARE\Classes' + s + '\ShellNew'),
    0, KEY_READ, hTemp1) = ERROR_SUCCESS then begin
    ListBox1.Items.Add(s);
    end; //ERROR_SUCCESS
    //Если нашли old_ShellNew - добавляем запись в ListBox1
    if RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar('SOFTWARE\Classes' + s + '\old_ShellNew'),
    0, KEY_READ, hTemp2) = ERROR_SUCCESS then begin
    ListBox1.Items.Add(s + ' (Отключен)');
    end; //ERROR_SUCCESS
    inc(i);
    end; //if iRes = ERROR_SUCCESS then begin
    end; //while iRes = ERROR_SUCCESS do begin
    FreeMem(buf);
    RegCloseKey(hTemp);
    end;
    end;

https://forum.sources.ru/index.php?showtopic=419683&view=findpost&p=3838943

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку