Old 27th January 2004, 20:56   #1
markus
Junior Member
 
Join Date: Jan 2004
Posts: 1
on Windows 98 SE, during the installation, it seems as if $DESKTOP is defined as "C:\WINDOWS\All Users\Desktop\", but during the uninstall, it seems as if $DESKTOP is defined as "C:\WINDOWS\Desktop\".

Can someone confirm/deny this?

what is really strange is that both of these locations are valid locations to place items that should appear on the desktop for all users.

please note that i am using "nsis20rc2.exe"

thanks,
-markus

markus dot khouri dot 1993<at>alum dot bu dot edu
markus is offline   Reply With Quote
Old 27th January 2004, 21:29   #2
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
You probably forgot to use SetShellVarContext all in the uninstall section too. The uninstaller doesn't remember what you've set using SetShellVarContext in the installer.

NSIS FAQ | NSIS Home Page | Donate $
"I hear and I forget. I see and I remember. I do and I understand." -- Confucius
kichik is offline   Reply With Quote
Old 3rd January 2005, 13:36   #3
Neeraj Tewari
Junior Member
 
Join Date: Jul 2003
Location: India
Posts: 9
Issue with win98

Kichik,

Even I have noticed this issue.
On win98, irrespective of the shellvarcontext, $DESKTOP always points to C:\Windows\Desktop.


I experimented by putting the following code in the uninstaller.

SetShellVarContext current
MessageBox MB_OK $DESKTOP
SetShellVarContext all
MessageBox MB_OK $DESKTOP

And in both the cases it gave me "C:\Windows\Desktop" on win98 se. It works on all other OS.

Is this a bug in NSIS 2.0( version I am using )
Neeraj Tewari is offline   Reply With Quote
Old 3rd January 2005, 14:41   #4
Takhir
Major Dude
 
Join Date: Feb 2004
Location: Moscow, Russia
Posts: 1,222
This is probably Win98 bug, because
SHGetSpecialFolderPath(NULL, b, CSIDL_COMMON_DESKTOPDIRECTORY, false);
returns NOERROR, but buffer remains empty. For CSIDL_DESKTOPDIRECTORY this works correct. As a result
... NSIS\Source\build.cpp(451): m_ShellConstants.add("DESKTOP",CSIDL_DESKTOPDIRECTORY, CSIDL_COMMON_DESKTOPDIRECTORY);
based on the SHGetSpecialFolderLocation (?) not finds this folder. But folder is correctly defined in Registry ("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Shell Folders" "Common Desktop"). Now it is possible to use registry value in installation script (while NSIS sources are not patched).
Takhir is offline   Reply With Quote
Old 3rd January 2005, 19:22   #5
Joel
Debian user
(Forum King)
 
Joel's Avatar
 
Join Date: Jan 2003
Location: Arch land
Posts: 4,917
maybe SHGetSpecialFolderPath needs Win98 SE


* PC: Intel Core 2 DUO E6550 @ 2.33 GHz with 2 GB RAM: Archlinux-i686 with MATE.
* Laptop: Intel Core 2 DUO T6600 @ 2.20 GHz with 4 GB RAM: Archlinux-x86-64 with MATE.
Joel is offline   Reply With Quote
Old 4th January 2005, 05:32   #6
Takhir
Major Dude
 
Join Date: Feb 2004
Location: Moscow, Russia
Posts: 1,222
I tested on Win98 SE (had not older version ), and placed shortcuts both to "all" and "current" folders, this worked - shortcuts appeared on the Desktop. IMHO folders mapping to Desktop works fine, problem in the system call.
Takhir is offline   Reply With Quote
Old 4th January 2005, 14:50   #7
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
It is some kind of a weird initialization problem. See this bug report for more information and a temporary solution.

NSIS FAQ | NSIS Home Page | Donate $
"I hear and I forget. I see and I remember. I do and I understand." -- Confucius
kichik is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > NSIS Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump