panup
killerbee1985
panup
> [<font]Program Files (x86)\Steam\steamapps\common\Cakewalk\x64\SONAR\Sonar.exe
Why on earth does Steam put 64 bit programs in x86 folder???
This must be one reason why Duckbar has problems with this installation path.
If you want to get the right Path for the Steam Version with your program you have to read the Regkey "SteamPath" under "HKEY_CURRENT_USER\SOFTWARE\Valve\Steam"
Value like: i:/program files (x86)/steam
You have to add the Folders "steamapps\common\Cakewalk\x64\SONAR" for the 64 Bit Files or "steamapps\common\Cakewalk\SONAR" for the 32 Bit Files.
Like: i:\program files (x86)\steam\steamapps\common\Cakewalk\x64\SONAR
Thanks for this!
Could you copy&paste me your HKEY_LOCAL_MACHINE\SOFTWARE\Cakewalk Music Software\SONAR registry entries -- I could verify how install paths are stored there.
Let's go technical for a while... I'll show how Duckbar tries to detect installed SONAR versions (simplified code):
First step: read subkeys from SOFTWARE\Cakewalk Music Software
Dim rootkey = view64.OpenSubKey("SOFTWARE\Cakewalk Music Software")
If rootkey IsNot Nothing Then
subnames1 = rootkey.GetSubKeyNames().ToList
For i As Integer = 0 To subnames1.Count - 1
subnames1(i) = "SOFTWARE\Cakewalk Music Software\" & subnames1(i)
Next
End If
Then we go thru found subkeys and search "InstallDirectory" key.
For Each key2 As String In subnames2
Dim installDirKey As String = "HKEY_LOCAL_MACHINE\" & key & "\" & key2
If Registry.GetValue(installDirKey, "InstallDirectory", "") <> "" Then
' Found SONAR installation
... blah blah blah ...
RegKeys.Add(keyToAdd)
End With
End If
Next
In 64 bit system same procedure is done for the SOFTWARE\Wow6432Node (which contains registry entries for 32 bit programs).
OK, enough computer nerd talk... We should be doing music, not hacking PCs. :D
Here are the important keys:
[HKEY_LOCAL_MACHINE\SOFTWARE\Cakewalk Music Software\SONAR\Platinum]
"issteaminstall"=dword:00000001 you can check this key if Sonar is installed over steam!"installdirectory"="I:\\Program Files (x86)\\Steam\\steamapps\\common\\Cakewalk\\SONAR"
"serial number"=""
"user name"="Steam User" or maybe here"language"="German"
"regurl"="http://www.cakewalk.com/register/default.asp?LID=1&PID=CXSE300&SN="
[HKEY_LOCAL_MACHINE\SOFTWARE\Cakewalk Music Software\SONAR\Platinum\ContentLocations]
"midi groove clips"="I:\\Program Files (x86)\\Steam\\steamapps\\common\\Cakewalk\\Cakewalk Content\\MIDI Library"
"audio library"="I:\\Program Files (x86)\\Steam\\steamapps\\common\\Cakewalk\\Cakewalk Content\\Audio Library"
"project files"="C:\\Cakewalk Projects"
"sample content"="I:\\Program Files (x86)\\Steam\\steamapps\\common\\Cakewalk\\Cakewalk Content\\SONAR"
"track icons"="I:\\Program Files (x86)\\Steam\\steamapps\\common\\Cakewalk\\Cakewalk Content\\SONAR\\Track Icons"
"track templates"="I:\\Program Files (x86)\\Steam\\steamapps\\common\\Cakewalk\\Cakewalk Content\\SONAR\\Track Templates"
you see...there is no x64 in the Path..but trust me this Folder is there and contains the x64 Files. In Steam you have a selector which Version you want to open, and chooses the proper Path and exe File. When somebody chooses the x64 Version in Duckbar you have to build the path together like i described before.I see you write in Visual Basic?