[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

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

Marcio Braga

12/22/2008 12:18:00 AM

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
--
Posted via http://www.ruby-....

2 Answers

Dejan Dimic

12/22/2008 10:07:00 PM

0

On Dec 22, 1:18 am, Marcio Braga <mbraga0...@gmail.com> wrote:
> 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
> --
> Posted viahttp://www.ruby-....

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...

Regards,
Dima

Marcio Braga

12/23/2008 1:00:00 AM

0

Dejan Dimic 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 ...

--
Posted via http://www.ruby-....