SetShellVarContext all - was failing to fall back to current user
Optimised this a little too git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@695 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
34db30b2ce
commit
8cc405362f
1 changed files with 20 additions and 16 deletions
|
@ -328,21 +328,25 @@ void NSISCALL myRegGetStr(HKEY root, const char *sub, const char *name, char *ou
|
||||||
|
|
||||||
char g_all_user_var_flag;
|
char g_all_user_var_flag;
|
||||||
|
|
||||||
static void NSISCALL queryShellFolders(const char *name, char *out)
|
static void NSISCALL queryShellFolders(const char *name_, char *out)
|
||||||
{
|
{
|
||||||
char f=g_all_user_var_flag;
|
static char name[20] = "Common ";
|
||||||
again:
|
mystrcpy(name + 7, name_);
|
||||||
|
|
||||||
myRegGetStr(g_all_user_var_flag?HKEY_LOCAL_MACHINE:HKEY_CURRENT_USER,
|
|
||||||
"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",
|
|
||||||
name+(f?0:7),out);
|
|
||||||
if (!out[0])
|
|
||||||
{
|
{
|
||||||
if (f)
|
char f=g_all_user_var_flag;
|
||||||
|
again:
|
||||||
|
|
||||||
|
myRegGetStr(f?HKEY_LOCAL_MACHINE:HKEY_CURRENT_USER,
|
||||||
|
"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",
|
||||||
|
name+(f?0:7),out);
|
||||||
|
if (!out[0])
|
||||||
{
|
{
|
||||||
f=0; goto again;
|
if (f)
|
||||||
|
{
|
||||||
|
f=0; goto again;
|
||||||
|
}
|
||||||
|
GetTempPath(NSIS_MAX_STRLEN,out);
|
||||||
}
|
}
|
||||||
GetTempPath(NSIS_MAX_STRLEN,out);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -497,17 +501,17 @@ void NSISCALL process_string(char *out, const char *in)
|
||||||
case VAR_CODES_START + 29: // STARTMENU
|
case VAR_CODES_START + 29: // STARTMENU
|
||||||
{
|
{
|
||||||
static const char *tab[]={
|
static const char *tab[]={
|
||||||
"Common Programs",
|
"Programs",
|
||||||
"Common Startup",
|
"Startup",
|
||||||
"Common Desktop",
|
"Desktop",
|
||||||
"Common Start Menu"
|
"Start Menu"
|
||||||
};
|
};
|
||||||
queryShellFolders(tab[nVarIdx-(VAR_CODES_START+26)], out);
|
queryShellFolders(tab[nVarIdx-(VAR_CODES_START+26)], out);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VAR_CODES_START + 30: // QUICKLAUNCH
|
case VAR_CODES_START + 30: // QUICKLAUNCH
|
||||||
queryShellFolders("Common AppData", out);
|
queryShellFolders("AppData", out);
|
||||||
lstrcat(out, "\\Microsoft\\Internet Explorer\\Quick Launch");
|
lstrcat(out, "\\Microsoft\\Internet Explorer\\Quick Launch");
|
||||||
f = GetFileAttributes(out);
|
f = GetFileAttributes(out);
|
||||||
if (f != (DWORD)-1 && (f & FILE_ATTRIBUTE_DIRECTORY))
|
if (f != (DWORD)-1 && (f & FILE_ATTRIBUTE_DIRECTORY))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue