From: Hideyuki Suzuki Date: 2004-09-05T07:55:21+09:00 Subject: [ruby-list:40008] Re: VBのSendKeyと同じことをしたいのですが...  Hideyuki Suzukiです。 原因はわかりませんが、次のようにすると起動できると思います。 1.systemによる起動をshell.Runに変更する。 2.SendKeyの前にAppActivateを実行する。 3.アプリケーションの起動後にsleepで時間を置く。 プログラム1では shell = WIN32OLE.new("WScript.Shell") shell.Run("notepad.exe") sleep(0.1) shell.AppActivate "無題 - メモ帳" shell.Sendkeys("{CAPSLOCK}") require 'win32ole' プログラム2では shell = WIN32OLE.new("WScript.Shell") shell.Run("AcroRd32.exe") sleep(1) shell.AppActivate "Adobe Reader" shell.SendKeys("%f") >oyaです。 >試験的に簡単なプログラムを作ろうとしているのですが >うまくいきません。どこが間違っているのでしょうか? >#プログラム1  >require 'phi' >require 'win32ole' >form = Phi::Form.new > >shell = WIN32OLE.new("WScript.Shell") >system("notepad.exe") > >shell.Sendkeys("{CAPSLOCK}") #大文字入力への切り替えはOK >shell.SendKeys("{%F}") #ファイルメニューは表示されない > >form.show >Phi.mainloop > >#****************************** >#プログラム2 >require 'phi' >require 'win32ole' >form = Phi::Form.new > >shell = WIN32OLE.new("WScript.Shell") >system("AcroRd32.exe") #AcrobatReaderは起動されず > >shell.SendKeys("{%F}") > >form.show >Phi.mainloop > >