Any ideas or links to Ruby and WSH(Windows Scripting Host)?
Can I use Ruby with .HTA(HTML for applications)?.
Thanks
Andres
Any ideas or links to Ruby and WSH(Windows Scripting Host)?
Can I use Ruby with .HTA(HTML for applications)?.
Thanks
Andres
Hello Andres,
2005/9/1, Andres M. Hidalgo <ahidalgo@bellatlantic.net>:
Any ideas or links to Ruby and WSH(Windows Scripting Host)?
Can I use Ruby with .HTA(HTML for applications)?.
You can do it with ActiveScriptRuby. Though I myself have not experienced that.
There are several sample files in samples folder of the installed location.
Takashi Sano
Takashi Sano wrote:
Hello Andres,
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...
Example:
require 'win32ole'
wscript_shell = WIN32OLE.new( 'WScript.Shell' )
wscript_shell.Popup( 'message', 0, 'title', 1 )
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
2005/9/1, Andres M. Hidalgo <ahidalgo@bellatlantic.net>:
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.
Let me recommend DevGuru.com:
WSH Reference: http://devguru.com/technologies/wsh/17346.asp
VBScript ("Scripting") library reference:
http://devguru.com/technologies/vbscript/13990.asp
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.)
Cheers,
Dave
Dave Burt wrote:
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.
Let me recommend DevGuru.com:
WSH Reference: http://devguru.com/technologies/wsh/17346.asp
VBScript ("Scripting") library reference: http://devguru.com/technologies/vbscript/13990.aspI 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.
Zach
Zach Dennis:
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).
Cheers,
Dave