On 3/31/2020 12:12 PM, Mark Waddingham via use-livecode wrote:
On 2020-03-31 17:07, Paul Dupuis via use-livecode wrote:
On 3/31/2020 8:37 AM, Paul Dupuis via use-livecode wrote:
Under LiveCode 9.x.x (up to 9.6.0dp3) I can see no way to obtain the 64bit application installation folder using SpecialFolderPath? Does anyone know if this is correct or am I missing something?

So answering my own question, as of LC9.6.0dp3 here are all the
Windows paths for any given CSIDL number between 0 and 255). None
return the 64-bit applications folder path. I will file an enhancement
request.

Is your app running as 32-bit?

Just to note (looking at the MSDN reference you mentioned):

FOLDERID_ProgramFilesX64
This value is not supported on 32-bit operating systems. It also is not supported for 32-bit applications running on 64-bit operating systems. Attempting to use FOLDERID_ProgramFilesX64 in either situation results in an error. See Remarks for more information.

So even if we did move to FOLDERIDs it wouldn't make much difference if the app is 32-bit as 32-bit apps won't return 64-bit related OS paths (it seems).

If the app is running as 64-bit then I think the relevant CSIDLs return the right thing?

Warmest Regards,

Mark.


Okay, I was running LC960dp3 (32 bit) so I downloaded LC960dp2 (64 bit) [I chose dp2 only because I didn't want 32 and 64 bits of the same version installed in case of some unknown conflict). Reran my paths test and your DO get different results!

Most interestingly:
specialFolderPath(38) = C:/Program Files is the 64 bot applications folder
and
specialFolderPath(42) = C:/Program Files (x86) is teh 32 bit applications folder

So, if I am using LC to build a Windows 64 bit standalone that 64 bit standalone can get BOTH the 64 bit Programs folder path AND the 32 bit Program folders path to check for the presence of a 3rd party application that could be installed as either 32 or 64 bit.

HOWEVER, if I have built a 32-Bit LC standalone, that can not get the path for the 64 bit Programs folder. It can ONLY get the path for the 32 bit Programs folder

A little disappointing. My use case remains. My app (currently 32 bit)  needs to check if a 3rd party app is installed. That 3rd party app could be have either a 32 bit version or a 64 bit version installed. I would like to use some sort of "specialFolderPath" precisely so it a user has a non standard installation I get the correct paths.

In at least one actual customer instance we have - out customer is running our app on a Microsoft Terminal Server and users get a remote desktop access to the server to run our app. In this specific case, REGISTRY queries get the users local registery on the CLIENT, but PATH queries check file paths on the SERVER, so registry checks do not work in this case.


Folder paths for 64-bit LiveCode 960dp2
specialFolderPath("home") = C:/Users/paul
specialFolderPath("desktop") = C:/Users/paul/Desktop
specialFolderPath("documents") = C:/Users/paul/Documents
specialFolderPath("support") = C:/Users/paul/AppData/Roaming
specialFolderPath("system") = C:/Windows
specialFolderPath("start") = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Start Menu
specialFolderPath("fonts") = C:/Windows/Fonts
specialFolderPath("temporary") = C:/Users/paul/AppData/Local/Temp
specialFolderPath("engine") = C:/Program Files/RunRev/LiveCode Business 9.6 (dp 2)
specialFolderPath("resources") = C:/Users/paul/Desktop
specialFolderPath(0) = C:/Users/paul/Desktop
specialFolderPath(2) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Start Menu/Programs
specialFolderPath(5) = C:/Users/paul/Documents
specialFolderPath(6) = C:/Users/paul/Favorites
specialFolderPath(7) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup specialFolderPath(8) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Recent specialFolderPath(9) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/SendTo specialFolderPath(11) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Start Menu
specialFolderPath(13) = C:/Users/paul/Music
specialFolderPath(14) = C:/Users/paul/Videos
specialFolderPath(16) = C:/Users/paul/Desktop
specialFolderPath(19) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Network Shortcuts
specialFolderPath(20) = C:/Windows/Fonts
specialFolderPath(21) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Templates
specialFolderPath(22) = C:/ProgramData/Microsoft/Windows/Start Menu
specialFolderPath(23) = C:/ProgramData/Microsoft/Windows/Start Menu/Programs
specialFolderPath(24) = C:/ProgramData/Microsoft/Windows/Start Menu/Programs/StartUp
specialFolderPath(25) = C:/Users/Public/Desktop
specialFolderPath(26) = C:/Users/paul/AppData/Roaming
specialFolderPath(27) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Printer Shortcuts
specialFolderPath(28) = C:/Users/paul/AppData/Local
specialFolderPath(29) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup specialFolderPath(30) = C:/ProgramData/Microsoft/Windows/Start Menu/Programs/StartUp
specialFolderPath(31) = C:/Users/paul/Favorites
specialFolderPath(32) = C:/Users/paul/AppData/Local/Microsoft/Windows/INetCache specialFolderPath(33) = C:/Users/paul/AppData/Local/Microsoft/Windows/INetCookies specialFolderPath(34) = C:/Users/paul/AppData/Local/Microsoft/Windows/History
specialFolderPath(35) = C:/ProgramData
specialFolderPath(36) = C:/Windows
specialFolderPath(37) = C:/Windows/System32
specialFolderPath(38) = C:/Program Files
specialFolderPath(39) = C:/Users/paul/Pictures
specialFolderPath(40) = C:/Users/paul
specialFolderPath(41) = C:/Windows/SysWOW64
specialFolderPath(42) = C:/Program Files (x86)
specialFolderPath(43) = C:/Program Files/Common Files
specialFolderPath(44) = C:/Program Files (x86)/Common Files
specialFolderPath(45) = C:/ProgramData/Microsoft/Windows/Templates
specialFolderPath(46) = C:/Users/Public/Documents
specialFolderPath(47) = C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Administrative Tools specialFolderPath(48) = C:/Users/paul/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Administrative Tools
specialFolderPath(53) = C:/Users/Public/Music
specialFolderPath(54) = C:/Users/Public/Pictures
specialFolderPath(55) = C:/Users/Public/Videos
specialFolderPath(56) = C:/Windows/Resources
specialFolderPath(59) = C:/Users/paul/AppData/Local/Microsoft/Windows/Burn/Burn


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to