![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как задействовать изменения? [D5, Win95/98]
zsv © (2002-10-17 12:47:00)Ребята, моя программа изменяет в реестре названия и иконки ярлыков "Мой компьютер", "Сетевое окружение".
Можно ли без перезагрузки компьютера задействовать эти изменения?
zsv (2002-11-13 09:19:00) [1]>SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, >SPI_SETNONCLIENTMETRICS, 1);
Это в 98-м не работает...
>Diamond Cat © (11.11.02 22:39)
>для 98
>SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
>как в прочем и для остальных платформ
А для этого, вероятно, подключается модуль?
Какой, если не секрет?
Пишет: "Незнакомая команда"...
Diamond Cat (2002-11-11 22:39:00) [2]для 98
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
как в прочем и для остальных платформ
Laim (2002-11-11 20:30:00) [3]Если я не ошибаюсь, то для того чтобы изменения реестра вступили в силу сразу, на послать что типа:
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 1);
zsv (2002-11-11 07:18:00) [4]Вопрос Miker.
>Miker (21.10.02 00:32)
>А это не то?
>SendMessage(FindWindow("Progman", "Program Manager"), >WM_COMMAND, $A065, 0);
А есть то же самое, но для Windows 98?
zsv (2002-10-24 10:59:00) [5]>Miker
Это как раз то!
Спасибо.
zsv
Miker (2002-10-21 00:32:00) [6]А это не то?
SendMessage(FindWindow("Progman", "Program Manager"), WM_COMMAND, $A065, 0);
TTCustomDelphiMaster (2002-10-19 11:08:00) [7]program Project1;
// Обновление рабочего стола
uses
ShlObj, ComObj, ActiveX, Windows;
const
CLSID_ActiveDesktop: TGUID = "{75048700-EF1F-11D0-9888-006097DEACF9}";
var
ActiveDesktop: IActiveDesktop;
begin
try
CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
ActiveDesktop.ApplyChanges(AD_APPLY_REFRESH or AD_APPLY_FORCE);
ActiveDesktop := nil;
finally
// CoUninitialize; //Здесь почему то возникает ошибка, надо разбираться
end;
end.
esu (2002-10-19 07:18:00) [8]
> Да...
> Видно, непосильно сложный это был вопрос для мастеров...
Вероятно можно это сделать елегантно, подозреваю, что в explorerе есть такая возможность.
1. А так ищешь процесс explorerа, пришибаешь его, он естественно автоматом перегружается.
2. Мне кажется, что если поставить твою программку в HKLM/Software/Microsoft/Windows/CurrentVersion/Run то и убивать ничего не будет нужно.
zsv (2002-10-19 05:49:00) [9]Да...
Видно, непосильно сложный это был вопрос для мастеров...
zsv (2002-10-18 07:31:00) [10]Дело в том, что моей программкой пользуюсь только я :-)
Я работаю в компьютерном классе и мне нужен порядок на "Рабочих столах". Согласитесь, что возникают некоторые неудобства, когда я прошу ученика щелкнуть ярлык "Мой компьютер", а он не находит ничего даже похожего...
Моя программа приводит все в порядок, но задействуется все только после перезагрузки, а хотелось бы сразу.
Программа запускается после загрузки Windows, делает изменения, и не хочется сразу же снова делать перезагрузку...
Юрий Зотов (2002-10-17 14:24:00) [11]> ZSV
Как Вы считаете, кто-нибудь станет пользоваться Вашей программой?
Если она меняет названия, не спрашивая юзера, то он ее точно выбросит. А если спрашивает, то зачем она вообще нужна? Эти самые названия спокойно меняются мышкой, без всяких программ.
Smithson (2002-10-17 13:01:00) [12]Достаточно перезагрузить Explorer (shell, короче). Поищи, тут это уже обсуждалось.