Как обновить область уведомлений Windows?

279
22 октября 2017, 22:22

Меняю в реестре флаг "EnableAutoTray" чтобы всегда выводились или скрывались значки в области уведомлений. Только одного изменения в реестре не достаточно, чтобы изменения отразились в системе - нужно закрыть explorer и запустить заново. Гуглил методы обновления проводника, чтобы без kill-process'а обойтись, но что-то пока не работает... Код следующий:

#include <windows.h>
#include <iostream>
//expupdatetest
int main(int argc, char** argv){
    if (argc > 1){
        HKEY RegKey;
        unsigned long value = atoi(argv[1]);
        switch(value){
            case 0:
            case 1:
                RegCreateKeyEx(
                        HKEY_CURRENT_USER,
                        "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\", 
                        0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &RegKey, NULL);
                RegSetValueEx(RegKey, "EnableAutoTray", 0, REG_DWORD, (BYTE*)&value, sizeof(value));
                RegCloseKey(RegKey);
                // Попытка сообщить окнам, что что-то поменялось...
                SendMessageA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0) ;
                break;
            default:
                std::cout << "ERROR! Value must be 0 or 1\n";
                break;
        }
    }
    return 0;
}

Чего тут не хватает, чтобы иконки сразу скрылись при value == 1, и появились при нуле?

READ ALSO
Не могу сделать перегрузку C++

Не могу сделать перегрузку C++

Не понимаю ошибку(((, надо сделать a[0] + a[2] - например, и чтобы в a[0] добавилась строка a[2];

281
Как &ldquo;найти&rdquo; boost.program_options?

Как “найти” boost.program_options?

В своем проекте на C++ применяю boostprogram_options

216
Разделение string на элементы массива через нужный символ

Разделение string на элементы массива через нужный символ

Подскажите, а способа как использовать <vector> для разделения нужной мне строки на подстроки, которые будут заноситься в массив, нет?

260
C++ - Неверный результат работы программы [требует правки]

C++ - Неверный результат работы программы [требует правки]

Решение задачи проходит только на 67,20 из 100И я совершенно не могу понять в чем проблема, перепробовал все что знаю, иногда выдает неправильный...

415