ファイルまたはフォルダを変更した後、リフレッシュに信号システム

次のメソッドは、ナビゲーションウィンドウを更新することはできません

/ *
notifychanges.c - win32のサブシステムとグローバルのプログラムの実行を通知するには
、このようなシステム環境変数として変化します。
著作権(C)2015、アミット・バクシ<gmailのドットコムでambakshi>
すべての権利を保有しました。
BSDライセンスの下で配布されています。詳細については、付属のライセンスを参照してください。
* /

#ifndefの_WIN32_WINNT
の#define _WIN32_WINNT 0x0503
#endifの

書式#include <windows.hに>
する#include <SHLOBJ.H>
書式#include <stdlib.h>に含ま

#ifdefの_MSC_VER
の#pragmaコメント(libに、 "user32.lib")
の#pragmaコメント(LIB、 "shell32.lib")
の#pragmaコメント(libに、 "てKernel32.lib")
#endifの

int型Win32_Notifychanges(){
    DWORD * dwRes。

    INTタイムアウト= 5、R。

    SHChangeNotify(SHCNE_ASSOCCHANGED、SHCNF_FLUSH、0、0); // dirとファイルの両方で動作します
    // SHChangeNotify(SHCNE_ASSOCCHANGED、SHCNF_IDLIST、0、0); //動作は上記と同様である
    // SHChangeNotify(SHCNE_UPDATEDIR、SHCNF_IDLIST、0、0); //ませ効果

     //どちらも効果なし。
    R = SendMessageTimeout(HWND_BROADCAST、WM_SETTINGCHANGE、0、(LPARAM)lParamに、SMTO_BLOCK、タイムアウト×1000、NULL);
    printf( "R%D \ n"、R)。
    IF(R!= 0){
        R = SendMessageTimeout(HWND_BROADCAST、WM_SETTINGCHANGE、0、0、SMTO_BLOCK、タイムアウト×1000、NULL)= 0!。
        printf( "R再び%D \ n"、R)。
    }
    Rを返します。
    0を返します。
}

メインINT()
{
    Win32_Notifychanges();
    0を返します。
}


おすすめ

転載: www.cnblogs.com/liujx2019/p/12530981.html