为什么SetEnvironmentVariable没有修改环境变量

    PTSTR pszEnvironmentName = NULL;
    PTSTR pszEnvironmentValue = NULL;
    DWORD dwValueLength = 0;

    pszEnvironmentName = (PTSTR)malloc(MAX_PATH * sizeof(TCHAR));
    GetDlgItemText(hDlg, IDD_EDIT_NAME, pszEnvironmentName, MAX_PATH);

    pszEnvironmentValue = (PTSTR)malloc(1024 * sizeof(TCHAR) * 3);
    GetDlgItemText(hDlg, IDD_EDIT_VALUE, pszEnvironmentValue, 
        1024 * sizeof(TCHAR) * 3);

    if (SetEnvironmentVariable(pszEnvironmentName, pszEnvironmentValue))
    {
        MessageBox(hDlg, TEXT("修改成功!"), TEXT("成功"), MB_OK);
    }
    else
    {
        MessageBox(hDlg, TEXT("修改失败!"), TEXT("失败"), MB_OK);
    }

    //释放分配的内存
    free(pszEnvironmentValue);
    free(pszEnvironmentName);

参考:http://www.cnblogs.com/runliuv/p/3489427.html

是修改的用户环境变量还是系统环境变量。你要查看一下。