[HowTo] immediate "sendkeys" with Ruby ? (SketchUp)

I need to send a key (letter “x” for example) to SketchUp (shortcut) in
the middle of a code execution. I’m trying to use the command:

WIN32OLE.new(“WScript.Shell”).SendKeys(“x”)

But this way, the “x” is not being sent immediately. For example:

p “test1”
WIN32OLE.new(“WScript.Shell”).SendKeys(“x”)
p “test2”

I see “test1” and “test2” arriving (on SketchUp console) but I do not
see SketchUp responding to shortcut “x” during execution of the code.
“x” arrives only when the code finishes and return control to SketchUp.

Is any way to send this “x” … immediately ?

Thank you
Marcio

On Dec 22, 1:18 am, Marcio B. [email protected] wrote:

I see “test1” and “test2” arriving (on SketchUp console) but I do not
see SketchUp responding to shortcut “x” during execution of the code.
“x” arrives only when the code finishes and return control to SketchUp.

Is any way to send this “x” … immediately ?

Thank you
Marcio

Posted viahttp://www.ruby-forum.com/.

Before sending any keys you should verify to whom you are sending
them.

Take look at:
http://rubyonwindows.blogspot.com/2007/05/automating-applications-with-ruby.html

Regards,
Dima

Dejan D. wrote:

Before sending any keys you should verify to whom you are sending
them.

Return of AppActivate is true so I think I’m sending to the right place
(I can see SketchUp window going to focus), but the shortcut “Y” is not
triggered before the end of code execution.

s=WIN32OLE.new(“WScript.Shell”)
p s.AppActivate(“SketchUp”) # return is true …
sleep(5)
p s.SendKeys(“y”) # should trigger Y shortcut
sleep(5)

no signs of the shortcut …

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs