Дякую, код ще не перевіряв. Але маю ще одне питання.
Я хочу написати власний explorer не для тренування, так би мовити. Я хочу оптимізувати систему. А саме, ярлики займають на екрані надто багато місця, а також їх важко шукати і програма для перемикання між робочими столами - це не вирішення проблеми. Також забирає багато пам'яті Windows Aero.
Я створив саме звичайнісіньке вікно з верхнім меню (.rc). Воно займає всього 20 пікселів зверху. Програма займає всього близько 11000 рядків. Працювати з цією елементарною програмою набагато легше, ніж зі стандартним провідником. Вона має класифікацію програм (приклад: Файл - Браузери - Опера, Файл - Браузери - Хром).
Після закриття explorer.exe мій власний провідник працює в разів 20 швидше, мені не треба чекати 5 секунд, поки відкриється Пуск.
Було б добре ще зробити так, щоб мій провідник був зверху і вікна відкривалися з відступом зверху. І іще прибрати заставку (тло) робочого столу і windows aero. Але я не знаю як це зробити. Тобто я взагалі не знаю. І прошу зробити за мене. Або хоча б дати посилання на msdn desktop api. І іще. Я запускаю все за допомогою ShellExecute(), а чув можна якось зробити напряму. І CreateThread чи як його не навчився ще використовувати, прохання написати код, який виконував би натискання пунктів меню через CreateThread, бо так виходить що поки команда не виконається то все меню висить. А стандартне меню Пуск не зависає після натискання пункту.
Той код що дали дякую але не зрозумів його роботи. Він здається отримує параметри, але слова Set я там не бачив. ShowWindow() ховає вікно, але це ж майже аналогічно що вбити explorer.exe. Повторюся, код не перевіряв, але поки мало вірю, що запрацює.