
Here´s my version :
Code: Select all
;/ PureBasic 4.10
Procedure.s SpecialFolder(folderno)
Protected listptr,Result$
listptr=0
Result$=Space(#MAX_PATH)
SHGetSpecialFolderLocation_(0,folderno,@listptr)
SHGetPathFromIDList_(listptr,@Result$)
ProcedureReturn Trim(Result$)
EndProcedure
Procedure.s PBVersion() ; Lance PB /VERSION
If OSVersion()>=#PB_OS_Windows_Vista
subkey.s="PureBasic.exe\DefaultIcon\"
Else
subkey.s="Applications\PureBasic.exe\DefaultIcon\"
EndIf
RegOpenKeyEx_(#HKEY_CLASSES_ROOT,@subkey,0,#KEY_READ,@keyhandle)
Out.s=Space(255)
DataSize.l=Len(Out)
RegQueryValueEx_(keyhandle,@name$,0,@Type,@Out,@DataSize)
RegCloseKey_(keyhandle)
Out=StringField(Out,1,",")
Out=GetPathPart(Out)+"Compilers\PBCompiler.exe"
pid=RunProgram(Out,"/version","",#PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
If pid
While ProgramRunning(pid)
Sortie.s + ReadProgramString(pid) + #CRLF$
Wend
EndIf
Sortie=StringField(Sortie,1,Chr(13))
ProcedureReturn Sortie
EndProcedure
Procedure.s TBVersion() ; Lance TB /VERSION
TBPreferencesPath$=SpecialFolder(#CSIDL_APPDATA) + "\TailBite\"
PBVersion$ = UCase(PBVersion())
PBVersion$ = RemoveString(PBVersion$, "PUREBASIC")
PBVersion$ = RemoveString(PBVersion$, "WINDOWS")
PBVersion$ = RemoveString(PBVersion$, "X86")
PBVersion$ = RemoveString(PBVersion$, "(")
PBVersion$ = RemoveString(PBVersion$, ")")
PBVersion$ = RemoveString(PBVersion$, "-")
PBVersion$ = RemoveString(PBVersion$, "V")
PBVersion$ = Trim(PBVersion$)
PBnbVersion=Val(RemoveString(PBVersion$,"."))
If PBnbVersion
TBPreferencesPath$=TBPreferencesPath$+"TailBite_"+Str(PBnbVersion)+".prefs"
Else
TBPreferencesPath$=TBPreferencesPath$+"TailBite.prefs"
EndIf
If OpenPreferences(TBPreferencesPath$)
Out.s=ReadPreferenceString("TBFolder","")+"TailBite.exe"
pid=RunProgram(Out,"/version","",#PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
EndIf
If pid
While ProgramRunning(pid)
Sortie.s + ReadProgramString(pid) + #CRLF$
Wend
Sortie=StringField(Sortie,1,Chr(13))
ProcedureReturn Sortie
EndIf
EndProcedure
MessageRequester("Version","PureBasic : "+PBVersion()+#CRLF$+"Tailbite : "+TBVersion())