Предполагая, что вы уже ввели себя в процесс проводника, вы можете отправить TB_GETIMAGELIST
на панель инструментов, а затем позвонить ImageList_GetIcon
или ImageList_GetImageInfo
.
Если с другой стороны, вы не вводили в процесс, но используют VirtualAllocEx
и ReadProcessMemory
, чтобы получить информацию на панели инструментов, то у вас будут проблемы, потому что вы не можете легко копировать объекты GDI от одного процесса к другому.
Это старое приложение под названием TraySaver может оказать вам помощь, но то, что вы делаете, не поддерживается и может быть повреждено в любой момент, потому что имя класса окна значка в трее и иерархия окон панели задач недокументированы, а вы не должен был получить к нему доступ таким образом.
Это не поддерживается. Если вы в отчаянии, почему бы не перестроить его самостоятельно? Будьте предупреждены, что, поскольку вы используете неподдерживаемые средства, ваш код может быть нарушен в будущих (или прошлых) выпусках. –
Не понимаю. Что имеет «TBBUTTONINFO» (информация об одной кнопке на панели инструментов), связано с значком, отображаемым в области уведомлений панели задач? (Если вы называете это системным лотком, вы рискуете [гнев Раймонда Чена] (https://blogs.msdn.microsoft.com/oldnewthing/20030910-00/?p=42583). –
благодарим вас за вашу ссылку @ Мартин Боннер, я не в том направлении, пожалуйста, дайте мне некоторое предложение по моему вопросу. Что мне теперь делать? – digger