Получение меню в проводнике - PullRequest
0 голосов
/ 06 марта 2012

Поскольку контекстное меню для рабочего стола и окон обозревателя отключено, я хотел кое-что сделать, чтобы вернуть некоторую функциональность. Моя идея состояла в том, чтобы просто перечислять вещи в контекстном меню (копировать, вставлять, создавать новые, открывать с помощью и т. Д.) Всякий раз, когда пользователь щелкает правой кнопкой мыши одно из этих окон, а затем просто моделировать соответствующее событие в реальном меню (file-> новый, редактировать-> копировать и т. д.). Это не выглядело бы прекрасно, но, надеюсь, позволило бы использовать щелчок правой кнопкой мыши.

Проблема в том, что я не могу получить фактическое меню. Я открыл «Мои документы» и попытался пройти по списку дочерних элементов к SysListView32, каждый раз вызывая GetMenuItemCount. Большинство вернуло -1, и единственное возвращаемое значение, отличное от этого, было 0.

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

Кроме того, есть ли способ заставить эту работу для рабочего стола? Вы можете получить вещи такого же типа, если посмотрите их в окне проводника, поэтому я подумал, что может быть способ.

Я использую Windows XP, и любая помощь приветствуется.

1 Ответ

0 голосов
/ 05 апреля 2012

Согласно комментарию Дэвида Хеффернана,

As for your question, you are on the wrong track. 
GetMenuItemCount needs an HMENU but you've been feeding it HWND. 
That won't work. It also won't work from a different process. 
You could possibly write a program that use the shell COM APIs 
to show a context menu for a shell item. But your basic problem 
is the bone-headed group policy. You really need to get that fixed. 
Tell the IT guy that takes the decision that I said he was a fool 
and was stopping you doing any useful work. ;-)

Это привело меня на путь использования правильного альтернативного метода для достижения моей цели.

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