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

Comments

  • Mark,

    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.
  • Try this (May need chaning to work in V9))

    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
  • Try this for OI9

    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
  • @CorbyNagel is correct with the exception that you don't need to search the registry. SRPUtilities.DLL is not registered. Just find it in your OI directory, right click it to view Properties, and go to the Details tab.

    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.
Sign In or Register to comment.