2012-05-03 22 views
2

Windowsフォルダ内のファイルを右クリックし、コンテキストメニューから簡単なスクリプトでオプションを選択する方法を教えてください。あなたがAPIを使用して回避することができwin32utilsを使用してWindowsでRubyを右クリックしてコンテキストメニューオプションを選択

+0

ネイティブshellexecute APIは特定の動詞を実行できます。多くのカスタム右クリックオプションは、一連の引数と実行可能プログラムにマップされます。何をしようとしていますか? –

+0

[Pickaxe Windows Supportの章](http://www.rubycentral.com/pickaxe/lib_windows.html)は、一般的な方法では役に立つかもしれませんが、達成しようとしているものによってはより簡単な方法があるかもしれません。 –

+0

Windows 7のコンテキストメニューで[Send To - > Desktop]オプションを選択しようとしています。 – urbanaut

答えて

3

は、デスクトップへのリンクを送信するために呼び出します。

require 'win32/shortcut' 
require 'win32/dir' 
include Win32 

Shortcut.new(Dir::DESKTOP + '\shortcut.lnk') do |s| 
    s.path = "c:\\path\\to\\something.exe" 
    s.window_style = Shortcut::SHOWNORMAL 
    s.description = "My shortcut to something" 
end 

あなたがwin32-shortcutwin32-dir宝石が必要になります。 Shortcut#pathに与えるファイルパスを決定する必要もあります。これは通常、Dir#eachを使って簡単に行えます。興味のあるディレクトリを渡し、繰り返し実行するディレクトリ要素に対して何らかの制御を行います。

+0

ショートカットの問題を作成してくれてありがとうございました(感謝!、投票アップ)、Windowsコンテキスト内で他のオプションをどのように選択するかについての提案はありますか - クリック)メニュー? (私の上記のコメントへの私の返事を参照してください) – urbanaut

+0

コンテキストメニュー項目の_click_には気づいていませんが、同じ動作を模倣する方法はたくさんあります。たとえば、 'win32-dir'ショートカットを使って' Dir :: COMMON_DOCUMENTS'を入手し、['FileUtils :: cp'](http://ruby-doc.org/stdlib-1.9)を使ってファイルをここにコピーします。 .3/libdoc/fileutils/rdoc/FileUtils.html#method-c-cp)を参照してください。 –

関連する問題