Как получить иконку окна в C#

Как я могу получить значок окна из его указателя или имени процесса/процесса? Значок, отображаемый в углу окна, на панели задач или в меню ALT-Tab.


person Carsen Daniel Yates    schedule 01.04.2012    source источник
comment
Найдите дескриптор окна и отправьте WM_GETICON   -  person David Heffernan    schedule 02.04.2012
comment
@DavidHeffernan Это работает только на Windows Mobile, не так ли?   -  person Dor Cohen    schedule 02.04.2012
comment
Дублировать stackoverflow.com/questions/462270/get -file-icon-used-shell   -  person Odys    schedule 02.04.2012
comment
@dor Я не понимаю, при чем здесь WinMo.   -  person David Heffernan    schedule 02.04.2012


Ответы (2)


читать о Icon.ExtractAssociatedIcon:

Возвращает представление значка изображения, содержащегося в указанном файле.

private void ExtractAssociatedIconEx()
{
    Icon ico =
        Icon.ExtractAssociatedIcon(@"C:\WINDOWS\system32\notepad.exe");
    this.Icon = ico;

}

http://msdn.microsoft.com/en-us/library/system.drawing.icon.extractassociatedicon.aspx

Это не будет работать на каждом процессе, но это хорошее начало.

также взгляните на эти ответы - Как я могу получить значок из исполняемого файла, только имея экземпляр его процесса в C#

person Dor Cohen    schedule 01.04.2012
comment
@CarsenDanielYates добро пожаловать, если вам понравился ответ, отметьте зеленую отметку и +1 - person Dor Cohen; 02.04.2012
comment
Этот ответ неверен. Вопросы касаются значка, связанного с окном, а не с исполняемым файлом. - person David Heffernan; 02.04.2012
comment
@DavidHeffernan Прочитайте вопрос еще раз: как я могу получить значок окна из его указателя или имени процесса/процесса? (ИМЯ ПРОЦЕССА) - person Dor Cohen; 02.04.2012
comment
О, подожди, извини. Это не сработает, мне нужно сделать полную переделку оболочки, я должен получить значок от запущенных процессов. - person Carsen Daniel Yates; 02.04.2012
comment
Следующий бит говорит о значке, отображаемом в углу окна, на панели задач или в меню ALT-Tab. и тут на помощь приходит WM_GETICON. - person David Heffernan; 02.04.2012
comment
@DavidHeffernan Спасибо за комментарии, кажется, это хороший ответ. почему не опубликуете? или отредактируйте мой ответ, если хотите - person Dor Cohen; 02.04.2012
comment
Я не хочу отвечать, потому что вопрос противоречив. У процессов нет значков. Exe-файлы делают. Винды делают. Но не процессы. - person David Heffernan; 02.04.2012

Подойдет ли вам Icon.ExtractAssociatedIcon?

person jhenderson2099    schedule 01.04.2012