Welcome to the SRP Forum! Please refer to the SRP Forum FAQ post if you have any questions regarding how the forum works.
Which version?
How do I determine which version of the utilities are being used?
We have a case where local network users are functioning just fine however users accessing the app interstate via terminal services are crashing due to functions not existing in srputilities dll.
This is the client that has just moved to the new app server. Everything was copied over from one to the other. All hell broke loose when the srp editor was reinstalled. The quick local fix was to copy a different copy of the srputilities.dll in from another machine.
Didn't satisfy the TS users
We have a case where local network users are functioning just fine however users accessing the app interstate via terminal services are crashing due to functions not existing in srputilities dll.
This is the client that has just moved to the new app server. Everything was copied over from one to the other. All hell broke loose when the srp editor was reinstalled. The quick local fix was to copy a different copy of the srputilities.dll in from another machine.
Didn't satisfy the TS users
Comments
In the past I have just searched for SRP Utilities in the computers registry and it will bring up the location of the file that is registered. I then navigate to that folder and check the version details. Unfortunately I don't think we have this in an easy place like the SRP_ActiveX_Info.exe or anything like that. Kevin might have another trick on locating this.
Function BSBS_GET_DLL_VERSION(FilePath)
*
*FilePath - Full path to the DLL file. I.e. c:\windows\twain_32.dll
*
* Enable oi10 event syntax by default because this is an event handler
#pragma precomp event_precomp
Declare Function get_property
$Insert Logical
$insert rti_AXSH_Equates
createParam = "VBScript" : @fm : TRUE$ : @window->handle
hAXSH = rti_AXSH( REVAXSH_MTD_CREATE$, createParam )
sc = ''
sc<-1> = 'Function getDLLVersion(FilePath)'
sc<-1> = 'Set objFSO = CreateObject("Scripting.FileSystemObject")'
sc<-1> = 'getDLLVersion = objFSO.GetFileVersion(FilePath)'
sc<-1> = 'End Function'
Swap @FM With \0D0A\ In sc
call rti_AXSH( REVAXSH_MTD_ADDCODE$, hAXSH, sC )
method = "getDLLVersion"
args = FilePath
retVal = rti_AXSH( REVAXSH_MTD_RUN$, hAXSH, method, args )
call rti_AXSH( REVAXSH_MTD_DESTROY$, hAXSH )
Return RetVal
Function CS_GET_DLL_VERSION(FilePath) * *FilePath - Full path to the DLL file. I.e. c:\windows\twain_32.dll * $Insert Logical *Store the WSHScript regular expression code in a common to prevent initializing it every call. common /csre_Com/objWrapper, csre_init% If Assigned(csre_init%) Else csre_init% = False$ *Is this the first call? If csre_init% NE True$ Then *First call, Initialize the WSH Wrapper object *The VBScript code to add to the WSH Wrapper sc = '' sc<-1> = 'Function getDLLVersion(FilePath)' sc<-1> = 'Set objFSO = CreateObject("Scripting.FileSystemObject")' sc<-1> = 'getDLLVersion = objFSO.GetFileVersion(FilePath)' sc<-1> = 'End Function' *Create an WSH script control to execute the VBScript code objWrapper = OLECreateInstance("MSScriptControl.ScriptControl") objWrapper->Language = "VBScript" *Format the code example with CRLF and add it to the script control. Swap @FM With \0D0A\ In sc x = objWrapper->AddCode( sc ) *Mark the object as being initialized csre_init% = True$ end *Pass in the FilePath and return the DLL Version RetVal = objWrapper->Run('getDLLVersion', FilePath) Return RetVal
Something like @BarryStevens' code could be a gateway to something more automated. Users could then be directed to an About box or something to see version numbers for everything. Maybye I can add it to the SRP Editor about box.
I have ideas on managing all our products more easily, but nothing concrete yet.