> 2005/9/1, Andres M. Hidalgo <ahida...@bellatlantic.net>:
>>Any ideas or links to Ruby and WSH(Windows Scripting Host)? >>Can I use Ruby with .HTA(HTML for applications)?.
I have used Ruby and WSH. It is beautiful. Documentation is sparse, so trial and error is a must, although it is really straightforward stuff once you get used to it. Use Win32OLE to access WSH...
Most WSH commands are executed just like you would execute them in VBScript...
Here is an examle of how to get system drive information: require 'win32ole' drives = [] file_system = WIN32OLE.new( 'Scripting.FileSystemObject' ) file_system.Drives.each { |drv| drives << drv.DriveLetter } drives
If you want any more hardcore examples I'll see what I can dig up!
Zach wrote: > I have used Ruby and WSH. It is beautiful. Documentation is sparse...
There is good documentation around! There's the Microsoft website, which has a complete reference to all their APIs (I think, I haven't checked them all). But they're a megabyte per page or something ridiculous like that.
I also use their quick reference for ASP programming.
Also, back to Ruby's WIN32OLE, every WIN32OLE object has an ole_methods method which returns all its properties and methods as an array. (Although in a recent thread I discovered that it doesn't always work; but it will with the WShell and Scripting libraries.)
>>I have used Ruby and WSH. It is beautiful. Documentation is sparse...
> There is good documentation around! There's the Microsoft website, which has > a complete reference to all their APIs (I think, I haven't checked them > all). But they're a megabyte per page or something ridiculous like that.
> I also use their quick reference for ASP programming.
> Also, back to Ruby's WIN32OLE, every WIN32OLE object has an ole_methods > method which returns all its properties and methods as an array. (Although > in a recent thread I discovered that it doesn't always work; but it will > with the WShell and Scripting libraries.)
I guess I meant documentation for using WIN32OLE and WScript...etc... I know that, documentation is one thing MS is good at... I didn't mean to imply there wasn't documentation on WSH.
> I guess I meant documentation for using WIN32OLE and WScript...etc... I > know that, documentation is one thing MS is good at... I didn't mean to > imply there wasn't documentation on WSH.
Well, you're right then. But it is pretty simple. So simple I'm going to document it right now (ruby-doc.org?).
This is WIN32OLE, from VB:
require 'win32ole'
# Set my_com_object = CreateObject("Library.Class") my_com_object = WIN32OLE.new("Library.Class")
# Set my_com_object = GetObject("Library.Class") my_com_object = WIN32OLE.connect("Library.Class")
# For Each com_object In com_collection_object # '... # Next for com_object in com_collection_object #... end
# (Press F1 and read the help?) com_object.ole_methods #=> [Array, Of, All, Methods, And, Properties, #=> Available, For, This, Object]
And the rest is straightforward. COM properties and methods become methods of the WIN32OLE object. If there's a Ruby name clash (e.g. a "class" property), you can either change the case of the method (COM's case insensitive) (com_object.Class or com_object.cLaSs) or use [] and []= (com_object['class'] is an lvar).