Get version of InternetExplorer / MozillaFirefox and Path

Share your advanced PureBasic knowledge/code with the community.
va!n
Addict
Addict
Posts: 1104
Joined: Wed Apr 20, 2005 12:48 pm

Get version of InternetExplorer / MozillaFirefox and Path

Post by va!n »

Code updated for 5.20+

i have read following topic:
viewtopic.php?t=15016

maybe this will help someon and maybe this results are usefull to detect what version of webgadget is used!?



Get Version of InternetExplorer:

Code: Select all

;-------- Read Registry value by Manne in 2003 --------

Procedure.l GetValue(topKey, sKeyName.s, sValueName.s, ComputerName.s)
  GetHandle.l
  hKey.l
  lpData.s
  lpDataDWORD.l
  lpcbData.l
  lType.l
  lReturnCode.l
  lhRemoteRegistry.l
  Shared GetValue.s
  
  If Left(sKeyName, 1) = "\"
    sKeyName = Right(sKeyName, Len(sKeyName) - 1)
  EndIf
  
  If ComputerName = ""
    GetHandle = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    lReturnCode = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    GetHandle = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
  
  If GetHandle = #ERROR_SUCCESS
    lpcbData = 255
    lpData = Space(255)
    
    GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
    
    If GetHandle = #ERROR_SUCCESS
      Select lType
        Case #REG_SZ
          GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
          
          If GetHandle = 0
            GetValue = Left(lpData, lpcbData - 1)
          Else
            GetValue = ""
          EndIf
          
        Case #REG_DWORD
          GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lpType, @lpDataDWORD, @lpcbData)
          
          If GetHandle = 0
            GetValue = Str(lpDataDWORD)
          Else
            GetValue = "0"
          EndIf
          
      EndSelect
    EndIf
  EndIf
  RegCloseKey_(hKey)
  ProcedureReturn GetHandle
EndProcedure

;-------- Add this to check registry for IE version --------

sKeyName.s = "SOFTWARE\Microsoft\Internet Explorer\"
sTopKey.l = #HKEY_LOCAL_MACHINE

GetValue(sTopKey.l,sKeyName.s,"Version","")
Debug GetValue 
Get Version of Mozilla Firefox:

Code: Select all

;-------- Read Registry value by Manne in 2003 --------

Procedure.l GetValue(topKey, sKeyName.s, sValueName.s, ComputerName.s)
  GetHandle.l
  hKey.l
  lpData.s
  lpDataDWORD.l
  lpcbData.l
  lType.l
  lReturnCode.l
  lhRemoteRegistry.l
  Shared GetValue.s
  
  If Left(sKeyName, 1) = "\"
    sKeyName = Right(sKeyName, Len(sKeyName) - 1)
  EndIf
  
  If ComputerName = ""
    GetHandle = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    lReturnCode = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    GetHandle = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
  
  If GetHandle = #ERROR_SUCCESS
    lpcbData = 255
    lpData = Space(255)
    
    GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
    
    If GetHandle = #ERROR_SUCCESS
      Select lType
        Case #REG_SZ
          GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
          
          If GetHandle = 0
            GetValue = Left(lpData, lpcbData - 1)
          Else
            GetValue = ""
          EndIf
          
        Case #REG_DWORD
          GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lpType, @lpDataDWORD, @lpcbData)
          
          If GetHandle = 0
            GetValue = Str(lpDataDWORD)
          Else
            GetValue = "0"
          EndIf
          
      EndSelect
    EndIf
  EndIf
  RegCloseKey_(hKey)
  ProcedureReturn GetHandle
EndProcedure

;-------- Add this to check registry for IE version --------

sKeyName.s = "SOFTWARE\Mozilla\Mozilla Firefox\"
sTopKey.l = #HKEY_LOCAL_MACHINE

GetValue(sTopKey.l,sKeyName.s,"CurrentVersion","")
Debug GetValue 
Get version of Mozilla Firefox - Logged User:

Code: Select all

;-------- Read Registry value by Manne in 2003 --------

Procedure.l GetValue(topKey, sKeyName.s, sValueName.s, ComputerName.s)
  GetHandle.l
  hKey.l
  lpData.s
  lpDataDWORD.l
  lpcbData.l
  lType.l
  lReturnCode.l
  lhRemoteRegistry.l
  Shared GetValue.s
  
  If Left(sKeyName, 1) = "\"
    sKeyName = Right(sKeyName, Len(sKeyName) - 1)
  EndIf
  
  If ComputerName = ""
    GetHandle = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    lReturnCode = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    GetHandle = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
  
  If GetHandle = #ERROR_SUCCESS
    lpcbData = 255
    lpData = Space(255)
    
    GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
    
    If GetHandle = #ERROR_SUCCESS
      Select lType
        Case #REG_SZ
          GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
          
          If GetHandle = 0
            GetValue = Left(lpData, lpcbData - 1)
          Else
            GetValue = ""
          EndIf
          
        Case #REG_DWORD
          GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lpType, @lpDataDWORD, @lpcbData)
          
          If GetHandle = 0
            GetValue = Str(lpDataDWORD)
          Else
            GetValue = "0"
          EndIf
          
      EndSelect
    EndIf
  EndIf
  RegCloseKey_(hKey)
  ProcedureReturn GetHandle
EndProcedure

;-------- Add this to check registry for IE version --------

sKeyName.s = "SOFTWARE\Mozilla\Mozilla Firefox\"
sTopKey.l = #HKEY_CURRENT_USER

GetValue(sTopKey.l,sKeyName.s,"CurrentVersion","")
Debug GetValue 
Last edited by va!n on Tue Dec 26, 2006 4:52 am, edited 1 time in total.
ricardo
Addict
Addict
Posts: 2438
Joined: Fri Apr 25, 2003 7:06 pm
Location: Argentina

Post by ricardo »

Good!!!!

Thanks!!!!!
ARGENTINA WORLD CHAMPION
va!n
Addict
Addict
Posts: 1104
Joined: Wed Apr 20, 2005 12:48 pm

Post by va!n »

Someone asked how to get the path of the installed FireFox... I wrote a small example how it should work...

Code: Select all



;-------- Read Registry value by Manne in 2003 --------

Procedure.l GetValue(topKey, sKeyName.s, sValueName.s, ComputerName.s)
  GetHandle.l
  hKey.l
  lpData.s
  lpDataDWORD.l
  lpcbData.l
  lType.l
  lReturnCode.l
  lhRemoteRegistry.l
  Shared GetValue.s
 
  If Left(sKeyName, 1) = "\"
    sKeyName = Right(sKeyName, Len(sKeyName) - 1)
  EndIf
 
  If ComputerName = ""
    GetHandle = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    lReturnCode = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    GetHandle = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
 
  If GetHandle = #ERROR_SUCCESS
    lpcbData = 255
    lpData = Space(255)
   
    GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
   
    If GetHandle = #ERROR_SUCCESS
      Select lType
        Case #REG_SZ
          GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
         
          If GetHandle = 0
            GetValue = Left(lpData, lpcbData - 1)
          Else
            GetValue = ""
          EndIf
         
        Case #REG_DWORD
          GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lpType, @lpDataDWORD, @lpcbData)
         
          If GetHandle = 0
            GetValue = Str(lpDataDWORD)
          Else
            GetValue = "0"
          EndIf
         
      EndSelect
    EndIf
  EndIf
  RegCloseKey_(hKey)
  ProcedureReturn GetHandle
EndProcedure

;-------- Add this to check registry for IE version --------

sKeyName.s = "SOFTWARE\Mozilla\Mozilla Firefox\"
sTopKey.l = #HKEY_LOCAL_MACHINE

GetValue(sTopKey.l,sKeyName.s,"CurrentVersion","")
Debug GetValue 

; -------- Part for Hroudtwolf :) --------
; 
 sKeyName.s = "SOFTWARE\Mozilla\Mozilla Firefox\" + GetValue +"\Main\"
 Debug sKeyName.s
;
 sTopKey.l = #HKEY_LOCAL_MACHINE
; 
GetValue(sTopKey.l,sKeyName.s,"PathToExe","")
Debug GetValue
Instead of "PathToExe", you can use "Install Directory" to get the path only.
va!n aka Thorsten

Intel i7-980X Extreme Edition, 12 GB DDR3, Radeon 5870 2GB, Windows7 x64,
User avatar
oryaaaaa
Addict
Addict
Posts: 825
Joined: Mon Jan 12, 2004 11:40 pm
Location: Okazaki, JAPAN

Post by oryaaaaa »

Nice tips

If firefox tools develop, following tips

My software (Include Source)
Easy Extension Editor Alpha 8 (2006/09/13)
http://oryaaaaa.world.coocan.jp/dlrank/ ... .cgi?dl=3E
PB
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Post by PB »

Now, what about getting the path to Firefox's cache? ;)
I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.
va!n
Addict
Addict
Posts: 1104
Joined: Wed Apr 20, 2005 12:48 pm

Post by va!n »

@PB:
Just open FF and type in: about:cache ... so you see the path and u can do a small routine for it :)
va!n aka Thorsten

Intel i7-980X Extreme Edition, 12 GB DDR3, Radeon 5870 2GB, Windows7 x64,
Post Reply