Щелкните правой кнопкой мыши меню EXE-файла - PullRequest
3 голосов
/ 20 февраля 2012

Мне было интересно, возможно ли в Delphi реализовать некоторые элементы, добавленные в контекстное меню файла EXE, в частности, EXE-файл приложения-службы Windows, который еще нигде не зарегистрирован или не установлен. Опции меню позволят пользователю установить / удалить EXE как службу Windows. Это возможно? Если так, то как? Это нормально, если он совместим только с Windows Vista +.

Было бы 2 пункта меню:

  • Установить (или удалить)
  • Старт (или Стоп)

Ответы [ 2 ]

5 голосов
/ 20 февраля 2012

Если вы ссылаетесь на контекстное меню оболочки (окно правой кнопкой мыши в проводнике Windows), вы не можете. Вы можете добавить в меню, которое будет отображаться для всех файлов .exe, но не для отдельного.

Вы можете зарегистрировать обработчик контекстного меню для всех исполняемых файлов, а затем отфильтровать переданное имя файла, чтобы увидеть, нужно ли вам его обрабатывать или нет, но это будет означать, что для каждой из сотен (или тысяч) исполняемых файлов на вашем компьютере, ваш фильтр будет работать при малой вероятности щелчка правой кнопкой мыши по вашему приложению.

Возможный обходной путь - поместить файл с пользовательским расширением в папку вашей службы и вместо этого добавить обработчик контекстного меню для этого файла. Если щелкнуть этот файл правой кнопкой мыши, пункты меню просто вызовут вашу службу с соответствующими параметрами командной строки.

(Конечно, лучшее решение - использовать апплет «Службы» на панели управления для управления вашим сервисом, что и сделано специально.)

3 голосов
/ 20 февраля 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...