you can use WMI to have a peak at all the ID processes.
here I have both CS4 and CS5 running, hopefully only one version should be running at a time, and we can use the ExecutablePath property to get the version (CS4 for instance) from it.
Dim WMI, Col, Ob, S2 Err.Clear On Error Resume Next Set WMI = GetObject("WinMgmts:") If (Err.number <> 0) Then MsgBox "Error creating WMI object. Error: " & Err.Number & " - " & Err.Description WScript.quit End If '-------------- processes ------------------------------------ Set Col = WMI.ExecQuery( _ "SELECT * FROM Win32_Process" & _ " WHERE Name = 'indesign.exe'",,48) S2 = S2 & " Process Info:" & vbCrLf & vbCrLf For Each Ob in Col S2 = S2 & "Caption: " & Ob.Caption & vbCrLf S2 = S2 & "ExecutablePath: " & Ob.ExecutablePath & vbCrLf S2 = S2 & "ProcessID: " & Ob.ProcessID & vbCrLf & "__________________________" & vbCrLf & vbCrLf Next msgbox S2 Set Col = Nothing Set WMI = Nothing MsgBox "Done."
Microsoft can figure out how to do it. If you take Mircosoft Words for instance, and make a macro in there, then it doesn't start up another Word instance when you activate the macro. It runs within the same instance of Word. This is what I would like in InDesign too.