Aaron,

 

I think this is the same problem, but when I use the useHotkeyManager
property of the standardHelpDialog object, I'm getting the same object
doesn't support this property or method error.  I think I can work around
this for now, just thought it should be reported for future reference
though.  Thanks again for the below fix.

 

Cory

 

From: Cory Samaha [mailto:[email protected]] 
Sent: Friday, April 23, 2010 6:30 AM
To: [email protected]
Subject: RE: accessing the GW Toolkit from JScript

 

Ah, all is right with the world now.  Works great.  Thanks!

 

-Cory

 

From: Aaron Smith [mailto:[email protected]] 
Sent: Thursday, April 22, 2010 5:17 PM
To: [email protected]
Subject: Re: accessing the GW Toolkit from JScript

 

FYI -- The latest toolkit resolves this issue.

Aaron

On 4/21/2010 8:32 AM, Aaron Smith wrote: 

Well, that makes about as much sense as using Let rather then Set. 

The MSDN documentation says that Set, "sets a reference to an object."

The MSDN documentation says that Let, "assigns (sets) the value of a
property."

Someone over there needs flogged a bit. The only drawback I can see from the
solution below is if the private variable could take either an object or
non-object, but if you're doing that, perhaps you need flogged as well.

The solution for the toolkit is to bypass Let and Set altogether and instead
make the property a public variable, then do type checking when that
variable is used. 

Aaron

On 4/21/2010 12:28 AM, Doug Lee wrote: 

This is a weird one, and I'm not sure what sorts of side effects might
happen with this, but you can make it work by adding a Property Let.
You do need both Property Let and Property Set, interestingly enough.
It remains to be tested what effect this has on trying to let/set that
property from the VBScript side.
 
The following version will print "FileSystemObject," proving that the
property set actually worked.
 
<job id="SharedObjectExample">
<script language="VBScript">
         Class MyClassDefinition
             Private theObject
 
             Public Sub Class_Initialize()
                 Set theObject = Nothing
             End Sub
 
             Public Property Get KeyStrings()
                 Set KeyStrings = theObject
             End Property
 
             Public Property Set KeyStrings(stringObj)
                 Set theObject = stringObj
             End Property
 
             Public Property Let KeyStrings(stringObj)
                 Set theObject = stringObj
             End Property
 
             Public Property Get ObjType()
                 ObjType = TypeName(theObject)
             End Property
         End Class
 
         Function CreateMyClass()
             Set CreateMyClass = New MyClassDefinition
         End function
</script>
<script language="JScript">
         x = CreateMyClass();
         fsObj = new ActiveXObject("Scripting.FileSystemObject");
         x.KeyStrings = fsObj
                WScript.Echo(x.ObjType)
</script>
</job>
 
On Tue, Apr 20, 2010 at 05:09:58PM -0400, Aaron Smith wrote:
 
   This problem appears to be unrelated to Window-Eyes. Using WSF, I can
   demonstrate this problem between VBScript and JScript without
   Window-Eyes involved:
   <job id="SharedObjectExample">
       <script language="VBScript">
           Class MyClassDefinition
               Private theObject
 
               Public Sub Class_Initialize()
                   Set theObject = Nothing
               End Sub
 
               Public Property Get KeyStrings()
                   Set KeyStrings = theObject
               End Property
               Public Property Set KeyStrings(stringObj)
                   Set theObject = stringObj
               End Property
           End Class
           Function CreateMyClass()
               Set CreateMyClass = New MyClassDefinition
           End function
       </script>
       <script language="JScript">
           x = CreateMyClass();
           fsObj = new ActiveXObject("Scripting.FileSystemObject");
           x.KeyStrings = fsObj
       </script>
   </job>
   Run this, as you will get the same "Object doesn't support this
   property or method" on the line x.KeyStrings = fsObj.
   VBscript to VBScript works. JScript to JScript works. VBScript to
   JScript works. But JScript to VBScript does not.
   Fortunately, I can work around this issue in the toolkit, and will do
   so in a future version.
   Aaron
   On 4/19/2010 4:25 PM, Cory Samaha wrote:
 
   Ok, thanks much.
 
 
   From: Aaron Smith [[1]mailto:[email protected]]
   Sent: Monday, April 19, 2010 4:20 PM
   To: [2][email protected]
   Subject: Re: accessing the GW Toolkit from JScript
 
 
   Cory,
   I can now duplicate what you're talking about. Let me do some
   investigation.
   Aaron
   On 4/19/2010 4:03 PM, Cory Samaha wrote:
 
   Aaron,
 
 
   When I do print(Utilities.TypeName(x)); I get HotkeyManagerClass and
   when I do print(Utilities.TypeName(theStrings)); I get Dictionary
 
 
   From: Aaron Smith [[3]mailto:[email protected]]
   Sent: Monday, April 19, 2010 3:55 PM
   To: [4][email protected]
   Subject: Re: accessing the GW Toolkit from JScript
 
 
   Cory,
   What do you get back if you use the Window-Eyes TypeName method, like
   this:
   print(Utilities.TypeName(x));
   Aaron
   On 4/19/2010 3:49 PM, Cory Samaha wrote:
 
   Ah, got it.  Now I'm back to the same message Error: Object doesn't
   support this property or method.  Below is the output of what I typed
   in Immed.
 
 
   x = SharedObjects("com.GWMicro.GWToolkit.HotkeyManager").NewDialog();
 
   x.IniFileName = "blah.ini";
 
   x.IniSectionName = "hotkeys";
 
   theStrings = strings("AIM.xml");
 
   print(typeof(theStrings));
 
   object
 
   x.KeyStrings = theStrings;
 
   Error: Object doesn't support this property or method
 
 
   From: Aaron Smith [[5]mailto:[email protected]]
   Sent: Monday, April 19, 2010 3:40 PM
   To: [6][email protected]
   Subject: Re: accessing the GW Toolkit from JScript
 
 
   Sorry, I was going from memory. Use theStrings rather than myStrings,
   as myStrings is already defined in the Immed script.
   Aaron
   On 4/19/2010 2:59 PM, Cory Samaha wrote:
 
   Aaron,
 
 
   When I do typeof(myStrings); I get back that it's of type object.  Did
   you say this ran fine for you in immed?  I was trying this in a
   jScript .js file that I was writing, but just to compare I just tried
   launching the hotkey manager in immed as well and didn't have much
   luck there either.  As soon as I tried to execute the line that says
 
   x.KeyStrings = myStrings; I get the following
 
 
   immed.js - Microsoft JScript runtime error
 
   Line 187 Column 5
 
   'undefined' is null or not an object
 
 
   < 0x800A138F >
 
 
   So either way, both typing this out in immed or from a regular .js
   file that I run from the WE script manager, I can't get this to work.
 
 
   -Cory
 
 
   From: Aaron Smith [[7]mailto:[email protected]]
   Sent: Monday, April 19, 2010 9:07 AM
   To: [8][email protected]
   Subject: Re: accessing the GW Toolkit from JScript
 
 
   Cory,
   What do you get for the type of myStrings?
   Aaron
   On 4/19/2010 8:52 AM, Cory Samaha wrote:
 
   Aaron,
 
 
   I tried
 
 
   x.KeyStrings = myStrings; and I get
 
 
   Object doesn't support this property or method
 
 
   < 0x800A01B6 >
 
 
   In fact, I first tried this without the parentheses and when I was
   unsuccessful I moved on to including parentheses.
 
 
   -Cory
 
 
   From: Aaron Smith [[9]mailto:[email protected]]
   Sent: Monday, April 19, 2010 8:45 AM
   To: [10][email protected]
   Subject: Re: accessing the GW Toolkit from JScript
 
 
   Cory,
   KeyStrings is a property, not a method, so you don't need the
   parenthesis. The following works for me in Immed:
   x = SharedObjects("com.GWMicro.GWToolkit.HotkeyManager").NewDialog();
   x.INIFileName = "blah.ini";
   x.INISectionName = "Hotkeys";
   myStrings = Strings("blah.xml");
   x.KeyStrings = myStrings;
   Aaron
   On 4/18/2010 5:29 AM, Cory Samaha wrote:
Greetings all,
 
What is the accepted approach for accessing the GW Toolkit from a
Window-Eyes hosted JScript script?  In the following lines of code, I'm
trying to launch the hotkey manager.  I haven't gotten to add keys yet, I
just want to make sure I can launch it first.  The following produces an
error.  Note that myStrings is a variable previously defined and I have
confirmed that it works as it should.
 
var hotkeyManager =
SharedObjects("com.GWMicro.GWToolkit.HotkeyManager").newDialog();
hotkeyManager.INIFileName = iniFileName;
hotkeyManager.INISectionName = "Hotkeys";
hotkeyManager.KeyStrings() = myStrings;
 
I'm getting an error on the line that says hotkeyManager.KeyStrings() =
myStrings; which says
 
Cannot assign to a function result
 
< 0x800A138B >
 
In the GW toolkit documentation examples which use VBScript syntax, I've
seen places where keyStrings() is used both with and without parentheses
after it.  I know that VBScript is less picky about the inclusion of
parentheses, but just in case, I tried that line omitting the parentheses as
in the following line.
 
hotkeyManager.KeyStrings = myStrings;
Now I get the following error.
 
Object doesn't support this property or method
 
< 0x800A01B6 >
 
So, obviously there is some syntax I'm not getting right.  Has anyone ever
tried to do this?  Any thoughts?
 
Thanks,
Cory
 
 
--
Aaron Smith
Product Support Specialist * Web Development
GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * gwmicro.com
 
To insure that you receive proper support, please include all past
correspondence (where applicable), and any relevant information
pertinent to your situation when submitting a problem report to the GW
Micro Technical Support Team.
 
--
Aaron Smith
Product Support Specialist * Web Development
GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * gwmicro.com
 
To insure that you receive proper support, please include all past
correspondence (where applicable), and any relevant information
pertinent to your situation when submitting a problem report to the GW
Micro Technical Support Team.
 
--
Aaron Smith
Product Support Specialist * Web Development
GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * gwmicro.com
 
To insure that you receive proper support, please include all past
correspondence (where applicable), and any relevant information
pertinent to your situation when submitting a problem report to the GW
Micro Technical Support Team.
 
--
Aaron Smith
Product Support Specialist * Web Development
GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * gwmicro.com
 
To insure that you receive proper support, please include all past
correspondence (where applicable), and any relevant information
pertinent to your situation when submitting a problem report to the GW
Micro Technical Support Team.
 
--
Aaron Smith
Product Support Specialist * Web Development
GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * gwmicro.com
 
To insure that you receive proper support, please include all past
correspondence (where applicable), and any relevant information
pertinent to your situation when submitting a problem report to the GW
Micro Technical Support Team.
 
--
Aaron Smith
Product Support Specialist * Web Development
GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * gwmicro.com
 
To insure that you receive proper support, please include all past
correspondence (where applicable), and any relevant information
pertinent to your situation when submitting a problem report to the GW
Micro Technical Support Team.
 
References
 
   1. mailto:[email protected]
   2. mailto:[email protected]
   3. mailto:[email protected]
   4. mailto:[email protected]
   5. mailto:[email protected]
   6. mailto:[email protected]
   7. mailto:[email protected]
   8. mailto:[email protected]
   9. mailto:[email protected]
  10. mailto:[email protected]
 

 

-- 
Aaron Smith 
Product Support Specialist * Web Development
GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * gwmicro.com
 
To insure that you receive proper support, please include all past
correspondence (where applicable), and any relevant information
pertinent to your situation when submitting a problem report to the GW
Micro Technical Support Team.

 

-- 
Aaron Smith 
Product Support Specialist * Web Development
GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * gwmicro.com
 
To insure that you receive proper support, please include all past
correspondence (where applicable), and any relevant information
pertinent to your situation when submitting a problem report to the GW
Micro Technical Support Team.

Reply via email to