2012-05-03 73 views
2
使用Ruby的上下文菜單選項

我怎麼能告訴紅寶石右擊一個文件,然後從上下文菜單中一個簡單的腳本選項?右鍵單擊在Windows文件夾並選擇在Windows

+0

本機的ShellExecute API可以運行某些動詞,許多自定義右鍵單擊選項映射回一組參數和一個可運行的程序,你想幹什麼? –

+0

的[鎬Windows支持章(http://www.rubycentral.com/pickaxe/lib_windows.html)可以在_really general_方式是有用的,但是這取決於你想要達到的目的有可能是一個更簡單的方法。 –

+0

我試圖在Windows 7上下文菜單中選擇「發送到 - >桌面」選項。 – urbanaut

回答

3

使用win32utils你能避免使用API​​調用來發送鏈接桌面:

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'快捷的'迪爾:: COMMON_DOCUMENTS',然後用['fileutils中:: cp'](複製此文件http://ruby-doc.org/stdlib-1.9 0.3/libdoc /文件實用程序/的RDoc/FileUtils.html#方法-C-CP)。 –

相關問題