Page 1 of 1

PB install directory in register base

Posted: Sun Jun 15, 2003 6:51 am
by Denis
I'm looking for the install directory of PB in register base.
How to get it (in PB of course) ?

Can anybody send URLs for base register explanations sites ?


Thanks


Denis

Posted: Sun Jun 15, 2003 10:22 am
by Fred

Code: Select all


  If GetVersion_() & $ff0000 ; Windows NT/XP

    If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, "Applications\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS , @Key) = #ERROR_SUCCESS
      If RegQueryValueEx_(Key, "", 0, @Type, @Buffer$, @BufferSize) = #ERROR_SUCCESS
        OutputDirectory$ = GetPathPart(Mid(Buffer$, 2, Len(Buffer$)-7))
      EndIf
    EndIf
    
  Else  ; The same for Win9x
  
    If RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "Software\Classes\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS , @Key) = #ERROR_SUCCESS
      If RegQueryValueEx_(Key, "", 0, @Type, @Buffer$, @BufferSize) = #ERROR_SUCCESS
        OutputDirectory$ = GetPathPart(Mid(Buffer$, 2, Len(Buffer$)-7))
      EndIf
    EndIf
    
  EndIf


Posted: Sun Jun 15, 2003 11:01 am
by Denis
Thanks Fred,

Denis :D

Posted: Sun Jun 15, 2003 1:51 pm
by GPI
Don't work, because the buffer is not defined and has no length, so the first line must

Code: Select all

 Buffer$=Space(10000):BufferSize=Len(Buffer$)-1
GPI

Posted: Sun Jun 15, 2003 10:24 pm
by Andre
Thanks Fred & GPI! To give all newbies a working example: :wink:

Code: Select all

  Buffer$=Space(10000):BufferSize=Len(Buffer$)-1

  If GetVersion_() & $ff0000 ; Windows NT/XP 

    If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, "Applications\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS , @Key) = #ERROR_SUCCESS 
      If RegQueryValueEx_(Key, "", 0, @Type, @Buffer$, @BufferSize) = #ERROR_SUCCESS 
        OutputDirectory$ = GetPathPart(Mid(Buffer$, 2, Len(Buffer$)-7)) 
      EndIf 
    EndIf 
    
  Else  ; The same for Win9x 
  
    If RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "Software\Classes\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS , @Key) = #ERROR_SUCCESS 
      If RegQueryValueEx_(Key, "", 0, @Type, @Buffer$, @BufferSize) = #ERROR_SUCCESS 
        OutputDirectory$ = GetPathPart(Mid(Buffer$, 2, Len(Buffer$)-7)) 
      EndIf 
    EndIf 
    
  EndIf 

  Debug OutputDirectory$