Haga clic derecho y seleccione una opción del menú contextual con Ruby en Windows

¿Cómo podría decirle a Ruby que haga clic con el botón derecho en un archivo en una carpeta de Windows y seleccione una opción del menú contextual en un script simple?

preguntado el 03 de mayo de 12 a las 17:05

La API shellexecute nativa puede ejecutar ciertos verbos, muchas opciones personalizadas de clic derecho se asignan a un conjunto de argumentos y un programa ejecutable, ¿qué está tratando de hacer? -

La Capítulo de soporte de Windows de Pickaxe puede ser útil en un muy general manera, pero dependiendo de lo que esté tratando de lograr, puede haber una manera más simple. -

Estoy tratando de seleccionar la opción "Enviar a -> Escritorio" en el menú contextual de Windows 7. -

Entonces probablemente solo necesites usar el win32utils para crear un acceso directo y guardarlo en el Escritorio. -

¿Alguna idea sobre cómo podría usar Ruby para usar el mismo menú contextual, pero para "Enviar a - Documentos" o "Enviar a -> Amazon Cloud Drive"? -

1 Respuestas

Usar win32utils puede evitar el uso de llamadas API para enviar enlaces a Desktop:

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

Necesitarás el win32-shortcut y win32-dir gemas; también deberá determinar la ruta del archivo para dar a Shortcut#path. Por lo general, esto se hace fácilmente usando el Dir#each, pasándole el directorio que le interesa y haciendo algún tipo de control sobre los elementos del directorio sobre los que itera.

contestado el 03 de mayo de 12 a las 17:05

Gran respuesta para la creación de un problema de acceso directo (¡gracias!, vote), pero ¿tiene alguna sugerencia sobre cómo podría seleccionar otras opciones dentro del menú contextual de Windows (clic con el botón derecho)? (Vea mi respuesta a su comentario anterior). - urbanut

Si bien no conozco ninguna forma de clic en los elementos del menú contextual, hay muchas formas de imitar el mismo comportamiento. Por ejemplo, podría obtener la Dir::COMMON_DOCUMENTS usando el win32-dir acceso directo, luego copie el archivo aquí usando FileUtils::cp. - alberto moriconi

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.