Jump to content

faiz

Members
  • Posts

    11
  • Joined

  • Last visited

faiz's Achievements

Seeker

Seeker (1/7)

0

Reputation

  1. Thanks for all your suggestions and time. Do you recommend I write to someone directly. Since the call works in Excel/VBA it might be a bug in AutoIt?
  2. I do not get any error reporting. Only the same error as before when the code refers to $list[27]
  3. 3.3.8.1 Actually just mow i was going to see if there is a new version...
  4. To your earlier question: there is no output (except the count output before the loop) since it hits the error. The VB Script & PDF are part of my history with this. The PDF contains Excel/VBA example, and it works for me too. In fact that is the solution we used and I left this forum for over a month! The VB Script is from a colleague and it does not work. This triggered an interest in an alternative and I googled and found AutoIt! AutoIt was better than VBScript since gave a Type Mismatch on the call which AutoIt does execute it and return everything, except the first element of the list. I suspect it is the way arguments are handled in AutoIt specially when using with calls to COM objects. I can get some insight from an expert like you.
  5. Error Subscript used with non-Array variable (in the ConsoleWrite line in the for loop)
  6. Dim $m, $list, $count $m = "e:....trunk.bpn" $p = ObjCreate("Net32COM.INetModel") $p.OpenModel($m) $p.GetNameList(7, $list, $count) ConsoleWrite("count = " & $count & @LF) for $i = 0 to $count - 1 ConsoleWrite("list(" & $i & ") " & $list[$i] & @LF) next ConsoleWrite("IsArray: " & IsArray($list[0]) & @CRLF) ConsoleWrite("IsObj: " & IsObj($list[0]) & @CRLF) ConsoleWrite("IsPtr: " & IsPtr($list[0]) & @CRLF) ConsoleWrite("VarType: " & VarGetType($list[0]) & @CRLF) ConsoleWrite("27" & $list[27] & @CRLF) ; Should give you a correct output ConsoleWrite("28" & $list[28] & @CRLF) ; Should return an errorCOmplete code is like this:
  7. Hi! Earlier I tried to run the loop from 0 to $count instead of $count - 1. It returned an error. After your suggestion I get : ConsoleWrite("27" & $list[27] & @CRLF) ConsoleWrite("27" & ^ ERROR Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded.
  8. The list gave a character that looks like a left pointing arrow but what I copied from my console output and pasted it into this post it was (is) not visible. I then also tried: ConsoleWrite("VarType: " & VarGetType($list[0]) & @CRLF) and got: VarType: String
  9. water: thanks for replying. Sorry for coming back so late. :-( I "ConsoleWrite" the count, the value of each element and then the code you suggested and get this: count = 27 list(0) list(1) RB-136H list(2) RB-104V list(3) RB-138H list(4) RB-154H list(5) RB-266H list(6) RB-265V list(7) RB-267H list(8) RB-268H list(9) RB-208H list(10) RB-93H list(11) RB-17V list(12) RB-209H list(13) RB-210H list(14) RB-225H list(15) RB-233V list(16) RB-226HST list(17) RB-307H list(18) RB-308H list(19) RB-207H list(20) RB-202H list(21) RB-92V list(22) RB-311HST list(23) RB-115 list(24) RB-84V list(25) RB-309H list(26) RB-203H IsArray: 0 IsObj: 0 IsPtr: 0 I the data from elements $list[1] to [26] is correct but I am missing the first data (which I expected to be in [0]). Thanks for any pointers/help. Really appreciate it.
  10. Hi, I am trying out AutoIt to access a program called Pipesim. According to the authors: "PIPESIM has been designed with "Openness" in mind. Therefore key modules can be "driven" from 3rd party applications, for example, Microsoft Excel, VB, C++, and so on." one of the calls/commands i make is .GetNameList () From the documentation of Pipesim: GetNameList (ObjectType As Long, pNameArray, Count As Long) OLE/COM Object viewer gives this information about this method: void GetNameList( [in] long ObjectType, [out] VARIANT* pNameArray, [out] long* Count); My AutoIt script uses this as : $p.GetNameList(7, $list, $count) $list returns are an array with index 0 to 26 (matches the $count with returns 27). Elements $list[1] to [26] do contains the proper string values (e.g. 'RB-136H') but element [0] contains a left pointing arrow (seems to be line feed since when I copied it from the output of ConsoleWrite and pasted it here it takes me to a new line with no visible character). Another Get method ( for which OLE/COM Object viewer says ): VARIANT_BOOL GetPropertyStringAtObjectIndex( [in] BSTR ObjectName, [in] BSTR ParentName, [in] BSTR PropName, [out] BSTR* pValue, [in] long Index); It returns pValue with a value of '??\' Are these limitations of AutoIt w.r.t. COM or am I doing something wrong? Thanks for any insight into this. This will really decide if we adopt AutoIt as our chosen scripting solution of choice. It has given us an extremely good impression otherwise. The functions work fine with Excel/VBA but have problems with VBScript. Regards, Faiz
×
×
  • Create New...