Написание расширений оболочки на Python и компиляция

Я пытаюсь создать расширение контекстного меню оболочки и значок наложения. Я успешно зарегистрировался и увидел контекстное меню, отображаемое при щелчке правой кнопкой мыши, и щелчки по меню правильно реагируют на код при запуске программы через Python.

Моя проблема, когда я пытаюсь скомпилировать код Python в исполняемый файл с помощью cx_Freeze или py2exe. Он создает исполняемый файл, а запуск исполняемого файла создает запись в реестре, но при щелчке правой кнопкой мыши после перезапуска explorer.exe меню не отображается.

Я думал, что cx_Freeze или py2exe сможет зарегистрировать контекстное меню или оверлей и заставить его говорить с кодом в exe. Нужно ли делать файл DLL? Я не очень знаком с com-серверами, поэтому любой, кто имеет опыт работы с расширениями оболочки, был бы очень признателен.

У меня есть более подробная информация, если требуется / необходимо.

1 ответ

Решение

Мне удалось зарегистрировать контекстное меню через DLL, следуя инструкциям, приведенным в этой ссылке. Я закончил тем, что использовал py2exe для 2.7, и я не уверен, что установка, которую они использовали, это то, что исправило это, или мне нужно было использовать regsvr32 при регистрации dll вместо исполняемого файла самостоятельного реестра. Я также использовал пропатченный py2exe, который есть в ответе по ссылке

Ссылка: сборка Com-сервера с использованием Python на 64-битной машине с Windows 7

Другие вопросы по тегам