Windows — Как добавить пользовательское меню при нажатии правой кнопкой мыши на файл / папку программно в C ++ / QT?

У нас есть приложение, которое синхронизирует файлы и папки, как это делает Dropbox. Это установщик на основе c ++ / QT.

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

Мы нацелены на оба окна & Платформы Mac. Кто-нибудь может подсказать, с чего начать?

введите описание изображения здесь

3

Решение

На Mac у вас будут проблемы, так как добавление в общее контекстное меню Finder устарело.

Итак, вы можете подумать, если это устарело, то как Dropbox делает это? Из того, что я исследовал в прошлом, я полагаю, что они используют внедрение кода для внедрения в адресное пространство работающего приложения Finder, а затем функцию Objective-C, известную как метод swizzling, для изменения вызова метода на свой собственный, который расположен в введенном коде.

Это все довольно хардкорный и очень низкий уровень, но если вы собираетесь отправиться в это путешествие, вы можете начать с изучения библиотеки под названием mach_inject и поискать ее в Google. Исходный код можно найти здесь: —

https://github.com/rentzsch/mach_inject

Однако следует помнить, что есть те, кто считает, что внедрение кода неправильно, и не будет устанавливать Dropbox или любое другое программное обеспечение, которое его использует. Кроме того, если вы планируете выпустить продукт в Mac Store, я не ожидаю, что какое-либо приложение, которое выполняет внедрение кода, будет разрешено.

5

Другие решения

По вопросам рекламы [email protected]