zoukankan      html  css  js  c++  java
  • 文件或文件夹改变后,发信号让系统刷新

    以下方法都无法刷新 Navigation Pane

    /*
    notifychanges.c - Notify win32 subsystem and running programs of globals
    changes such as system environment variables.
    Copyright (c) 2015, Amit Bakshi <ambakshi at gmail dot com>
    All rights reserved.
    Distributed under the BSD License. See included LICENSE for details.
    */

    #ifndef _WIN32_WINNT
    #define _WIN32_WINNT 0x0503
    #endif

    #include <windows.h>
    #include <shlobj.h>
    #include <stdlib.h>

    #ifdef _MSC_VER
    #pragma comment(lib,"user32.lib")
    #pragma comment(lib,"shell32.lib")
    #pragma comment(lib,"kernel32.lib")
    #endif

    int Win32_Notifychanges() {
        DWORD* dwRes;
        const char* lParam = "Environment";
        int timeout = 5, r;

        SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_FLUSH, 0, 0); // Works on both dir and file
        // SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0); // Behavior is same as the above
        // SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_IDLIST, 0, 0); // No effect

         //Both no effects.
        r = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)lParam, SMTO_BLOCK, timeout * 1000, NULL);
        printf("r %d ", r);
        if (r != 0) {
            r = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0, SMTO_BLOCK, timeout * 1000, NULL) != 0;
            printf("r again %d ", r);
        }
        return r;
        return 0;
    }

    int main()
    {
        Win32_Notifychanges();
        return 0;
    }


  • 相关阅读:
    [蓝桥杯][算法提高VIP]传染病控制
    PAT甲级第二次真题练习
    BFS()搜索加上hash
    PAT甲级第一次真题练习
    一个小练习题
    八皇后
    【Noi 1994 删数问题】【openjudge 3528 最小新整数(变式)】整型与字符
    【openjudge 2469 电池的寿命】算法与思维
    MarkDown测试
    HNOI 2017 怼大佬
  • 原文地址:https://www.cnblogs.com/liujx2019/p/12530981.html
Copyright © 2011-2022 走看看