View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson[_5_] Dave Peterson[_5_] is offline
external usenet poster
 
Posts: 1,758
Default Locating a user's Program Files

This worked ok for me in WinXP (not sure it works in all versions of windows).

Option Explicit
Sub testme01()
MsgBox Environ("programfiles")
End Sub

But I searched *scripting* newsgroups and found something that was close to
this:

Option Explicit
Sub testme02()

Dim sPath As String
Dim WSHShell As Object
Set WSHShell = CreateObject("WScript.Shell")

sPath = WSHShell.environment("Process")("ProgramFiles")

If sPath = "" Then
sPath = WSHShell.RegRead _
("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\P rogramFilesDir")
End If

MsgBox sPath

End Sub

It looks like it tries to use the environment variable. If it doesn't find it,
it goes and reads the registry.



cush wrote:

I am able to locate a users desktop with the following code:

Set WSHShell = CreateObject("WScript.Shell")
sPath = WSHShell.specialfolders("Desktop")

I need something similar to locate the Program Files, which are not always
located at C:\Program Files

I tried:
Set WSHShell = CreateObject("WScript.Shell")
sPath = WSHShell.SpecialFolders("Program Files")

both with and without the space, but it only turned up
an empty string.

sPath = WSHShell.SpecialFolders("Programs")
returns : \Start Menu\Programs

Any clues?
Also, where can I find the object model for this?


--

Dave Peterson