Запуск программы из контекстного меню

Тема в разделе "WASM.BEGINNERS", создана пользователем Processor, 18 мар 2008.

  1. Processor

    Processor New Member

    Публикаций:
    0
    Регистрация:
    15 мар 2008
    Сообщения:
    46
    Есть программа для работы с файлами.

    Хотелось бы добавить возможность использовать программу из контекстного меню файла.
    Т.е. открываешь контекстное меню файла, и там должен быть пункт - открыть этот файл с помощью этой программы.
    Подскажите, пожалуйста, с чего начинать и как это реализуется?
    (Естественно в общих чертах. Буду сам постепенно постигать тему.)
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    Например, для txt-файлов:

    Значение по умолчанию ключа HKCR\.txt - txtfile
    В HKCR\txtfile\shell добавить подраздел Отображаемый_в_меню_текст\command
    в значение по умолчанию созданного подраздела записать "Название_программы.exe %1"
     
  3. a1ss

    a1ss New Member

    Публикаций:
    0
    Регистрация:
    18 ноя 2007
    Сообщения:
    120
    const
    path = '\exefile\shell\open with my prog\command';
    path2 = '\exefile\shell\open with my prog';
    folpath = '\Directory\shell\open with my prog2\command';
    folpath2 = '\Directory\shell\open with my prog2';


    fReg := TRegistry.Create;
    fReg2 := TRegistry.Create;
    fReg.RootKey := HKEY_CLASSES_ROOT;
    fReg2.RootKey := HKEY_CLASSES_ROOT;
    fReg.CreateKey(path);
    fReg2.CreateKey(folpath);
    fReg.OpenKey(path,true);
    fReg2.OpenKey(folpath,true);
    fReg.WriteString('','"' + Application.ExeName + '"' + '%1"');
    fReg2.WriteString('','"' + Application.ExeName + '"' + '%1"');
    fReg.CloseKey;
    fReg2.CloseKey;
     
  4. Processor

    Processor New Member

    Публикаций:
    0
    Регистрация:
    15 мар 2008
    Сообщения:
    46
    Ага. Спасибо, RMN
    Попробуем.
    Мне бы вот только нужна возможность открытия
    любого файла с любым расширением.

    В реестре позволяются вольности типа *.* ?

    Спасибо также a1ss
    Сейчас попробую разобраться...
     
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    Тогда подраздел shell\Открыть в ...\command создавать в HKCR\*
     
  6. Processor

    Processor New Member

    Публикаций:
    0
    Регистрация:
    15 мар 2008
    Сообщения:
    46
    А вот дополнительные параметры как-то можно передать?
    например, полный путь к файлу?
    Т.е. при запуске программы из контекстного меню выбраного файла открывалась бы сама программа, в эдитбоксе которой был бы забит полный путь к файлу? (Который ещё не открыт, но подлежит обработке?)
     
  7. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Ну так "Название_программы.exe %1" вместо %1 будет подставлятся имя файла, полную строку можешь получить с помощью GetCommandLine
     
  8. Processor

    Processor New Member

    Публикаций:
    0
    Регистрация:
    15 мар 2008
    Сообщения:
    46
    Т.е. программа должна работать и с командной строкой?