Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Сервис не видит новые переменные окружения :(


Автор: artemKonev 17.5.2013, 17:45
Доброе утро! 

Есть инсталятор, который прописывает свои пути в PATH  и создает сервис (Apach собсно).
При попытке запустить сервис - Apach выдает ошибку что не может чего-то там найти... 
Если перегрузиться, то все понятно работает.. 
Но можно даже не перегружаться - достаточно открыть стандартное виндовое окошко где прописаны системные переменные и нажать ОК. 
После этого тоже все работает.. 

нашел что надо посылать сообщение WM_SETTINGCHANGE
различные вариации выглядят так: 

Код

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) "Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue) 
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) L"Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue)
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE,0, (LPARAM) TEXT("Environment"))
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0)


нифига не помогает... 
может будут еще какие мысли?? 

Заранее спс smile

Автор: Dem_max 17.5.2013, 20:19
Цитата

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) "Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue) 

должно работать

Автор: artemKonev 17.5.2013, 21:48
Цитата(Dem_max @ 17.5.2013,  20:19)
Цитата

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) "Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue) 

должно работать

да везде написано что должно... но не работает... это семерка винда!! на ХР тоже не работает, но это бы фиг сним.. на 2003 и 2008 тоже самое... но не всегда smile))

Автор: artemKonev 18.5.2013, 15:49
еще наверно стоит сказать, что эти сообщения посылаются - если я меняю пути в реестре, в новом смд говорю path, то нового пути нету. Посылаю сообщения, в новом смд говорю path - новый путь есть.. так что оно как бы работает, но сервис менеджену видимо надо еще что то сказать чтобы он себе обновил переменные...

Автор: artemKonev 21.5.2013, 09:21
Проблема была совсем в другом месте smile


M
GremlinProg
Как интригующе!!! КПД сообщения = 0, КПД темы стремится туда же

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)