我想环境变量立即生效
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT("Environment"));
int a = GetLastError();单a总等于126,请问是什么意思,谢谢!

解决方案 »

  1.   

    126 The specified module could not be found.  ERROR_MOD_NOT_FOUND
      

  2.   

    To send the WM_SETTINGCHANGE message to all top-level windows, use the SendMessageTimeout function with the hwnd parameter set to HWND_BROADCAST.
      

  3.   

    CounterHack(反击黑客) :我不是不知道上面这句代码的意思
    ks2(此恨绵绵无绝期之把法国辣妹) :错误号对应的错误信息我知道查我想知道的是上面的这行代码什么时候会返回这种错误码,为什么会这样,谢谢!
      

  4.   

    用 SendMessageTimeout 代替 SendMessage 不行吗?
      

  5.   

    这里应该没必要用SendMessageTimeout代替SendMessage吧?因为我这里程序并不会挂在那里,只是函数调用会返回126错误,而且环境变量并未生效
      

  6.   

    据说是WM_SETTINGCHANGE的文档的一部分
    To send the WM_SETTINGCHANGE message to all top-level windows, use the SendMessageTimeout function with the hwnd parameter set to HWND_BROADCAST. 
      

  7.   

    如果你是
    SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT("Environment"));
    int a = GetLastError();
    这样写代码的话,那么这个LastError并不一定是SendMessage()的错误导致,GetLastError()取得的是上一次出错时的错误代码.其次你设的环境变量名是Environment,它并没有值.第三,WM_SETTINGCHANGE设置的变量好像仍就是Application范围内的,而不是System范围.这一点我记得不是很清楚,你可以查MSDN.
      

  8.   

    最好的办法是看MFC的原代码  一切都在代码中