我设完系统变量后采用下面一句后启动别的应用程序系统变量已经可以用了,但是这个应用程序本身还不行,必须重新启动这个程序才行.怎么样才能是这个环境变量设完后直接在这个应用程序中就能用呢?
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT("Environment"));

解决方案 »

  1.   

    应用程序也可以使用各种注册表函数来修改这些注册表项目。但是,若要使这些修改在所有应用程序中生效,用户必须退出系统,然后再次登陆。有些应用程序,如Explorer、Task Manager和Control Panel等,在它们的主窗口收到WM_SETTINGCHANGE消息时,用新注册表项目来更新它们的环境块。例如,如果要更新注册表项目,并且想让有关的应用程序更新它们的环境块,可以调用下面的代码:
    SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)TEXT("Environment"));
      

  2.   

    我用这个函数了SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)TEXT("Environment")); 用完后这个应用程序比起作用,别的应用程序是可以了。还必须重新启动这个应用程序才行,我想使这个应用程序直接设完他本身这个就可以使用。
      

  3.   

    我用这个函数了SendMessage(HWND_BROADCAST,  WM_SETTINGCHANGE,  0,  (LPARAM)TEXT(  "Environment  "));  用完后这个应用程序不起作用,别的应用程序是可以了。还必须重新启动这个应用程序才行,我想使这个应用程序直接设完后他本身这个就可以使用。是不是需要调用一个什么函数来更新它自己的环境块?