Как изменить порядок кнопок на панели задач?

Вы можете просто использовать простой reduce, а затем использовать записи, чтобы получить ожидаемый формат:)

const status = [ {status:1, id:10},
           {status:2, id:11},
           {status:1, id:12}];
           
const result = status.reduce((acc, {status}) => (acc[status] = (acc[status] || 0) + 1, acc), {});
console.log(result);

const formattedResult = Object.entries(result)
console.log(formattedResult);

// If you need to remove the string format from the keys: 

const formattedResult2 = Object.entries(result).map(([k,v]) => [Number(k),v]);
console.log(formattedResult2);

7
задан Timwi 28 April 2009 в 13:17
поделиться

2 ответа

Ответ заключается в использовании TB_MOVEBUTTON при вызове SendMessage () , как описано в документации WinAPI здесь .

Первый параметр для SendMessage () ( hWndControl ) должен быть ссылкой на панель инструментов, которая содержит кнопки панели задач. Это нетривиально для извлечения, но запись CodeProject , упомянутая в ответе Криса Кларка, содержит весь код, необходимый для извлечения этого дескриптора.

wParam и lParam нуждаются быть установленным для идентификатора кнопки, на которую нужно переместиться, и позиции для ее перемещения, соответственно. Эти идентификаторы являются полем idCommand в структуре TBBUTTON , которая представляет каждую кнопку;

6
ответ дан 7 December 2019 в 07:50
поделиться

Тот факт, что Windows API не предоставляет методы для изменения порядка кнопок панели задач, является преднамеренным. Нет поддерживаемого способа сделать это.

См. эту статью (и те, на которые она ссылается) для размышления о том, почему разработчики оболочки не раскрывают эту функциональность.

Однако изобретательные люди разработали хаки для достижения. это (см. другие ответы). Я подозреваю, что эти методы будут разваливаться по мере развития Windows (Windows 7, 64-битная и т. Д.). Не удивляйтесь, когда эти методы перестанут работать.

1
ответ дан 7 December 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: