From: MIYAMUKO Katsuyuki Date: 2005-07-11T20:25:11+09:00 Subject: [ruby-list:40924] Re: windowsでコンテキストメニューの「印刷」を実行するには? みやむこです。 岩崎 弘孝 wrote: > 今回、windowsでコンテキストメニュー(マウス右ボタンのメニュー)の「印刷」 > を実行したく > 以下のコードを作成しましたが、デフォルトの動作である「開く(&O)」に相当す > る > 動作しかしないようです。解決策のご助言をお願いします。 (もう解決しているかもしれませんが) InvokeVerb を使わずに Verbs の中から 自分で探して、doIt してあげるとできるみたいです。 #!ruby -Ks require 'win32ole' class WIN32OLE include Enumerable end parent, name = File.split(File.expand_path(ARGV.shift)) parent.gsub!("/", "\\") shell = WIN32OLE.new('Shell.Application') verbs = shell.NameSpace(parent).ParseName(name).Verbs #puts verbs.map {|v| v.Name } if v = verbs.find {|v| v.Name == "印刷(&P)" } v.doIt sleep(2) # 起動が遅い場合 (excel とか)、少し待ってあげないとだめ。 else puts "印刷できません" end