Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Modificar menú contextual de windows

Estas en el tema de Modificar menú contextual de windows en el foro de Visual Basic clásico en Foros del Web. Hola, estoy haciendo un programa pero quiero que cuando haga click derecho en una carpeta me de la opción en el menú contextual. Osea, click ...
  #1 (permalink)  
Antiguo 16/11/2012, 16:56
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 13 años, 9 meses
Puntos: 1
De acuerdo Modificar menú contextual de windows

Hola, estoy haciendo un programa pero quiero que cuando haga click derecho en una carpeta me de la opción en el menú contextual.

Osea, click derecho en la carpeta --> abrir mi programa

Y que cuando aprete se habra mi programa y que en una variable se guarde el nombre del programa en el que le hicieron click derecho.

Conseguí un código y lo modifiqu´para que quede así.

Código:
Private Sub Command1_Click()

    'variable de tipo object para leer y crear claves _
    en el registro medianet windows scripting Host

    Dim obj As Object

    'Para la ruta de nuestra aplicacion
    Dim ruta As String

    'seteamos la variable y creamos el objeto
    Set obj = CreateObject("WScript.Shell")

    'ahí hace que cuando haga click derecho aparezca mi opcion
    Resultado = obj.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\")

    
    obj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\Shell\miprograma\", _
                 "Abrir mi programa"

    'Ruta de nuestro exe
    ruta = App.Path & "\" & App.EXEName & ".exe"

    'Ahora dentro de la clave que creamos que quedó de esta manera:
    '"HKEY_CLASSES_ROOT\htmlfile\shell\miprograma\command" y agregamos la ruta mas el %1
    obj.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\Shell\miprograma\command\", _
                 """" & ruta & """" & " " & "%1"

    'Eliminamos la variable de objeto
    Set obj = Nothing
 

 
End Sub

Private Sub Form_Load()
    'Cuando se inicia el form cargará la página pasada desde la linea de comandos
    WebBrowser1.Navigate Command$
    Command1.Caption = " Asociar Extensión Htm "
End Sub

Lo modifiqué por la mitad..

LO que hace es que cuando hago click derecho en una carpeta me muestra la opción " abrir mi programa" y cuando lo apreto intenta abrirlo CON mi programa.


¿Como hago para que cuando aprete el botón "abrir mi programa" abra mi programa y se guarde en una variable el nombre de la carpeta?
  #2 (permalink)  
Antiguo 05/12/2012, 22:16
Usuario no validado
 
Fecha de Ingreso: junio-2010
Ubicación: Guatemala
Mensajes: 196
Antigüedad: 13 años, 10 meses
Puntos: 25
Respuesta: Modificar menú contextual de windows

Saludos, lo que necesitas realizar es un procedimiento Main en tu programa, luego indicarle al proyecto que ese procedimiento será el punto de inicio.

La instrucción que necesitas es la instrucción Commands, la cual contiene los argumentos que fueron utilizados al ejecutar tu programa.

Ej.: TuAplicacion.exe /h
Ej.: TuAplicacion.exe C:\Prueba\

Puedes encontrar mayor información en estos enlaces:
http://www.devx.com/getHelpOn/10MinuteSolution/20366
http://www.vbexplorer.com/VBExplorer..._arguments.asp
  #3 (permalink)  
Antiguo 31/12/2012, 04:10
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Modificar menú contextual de windows

Simplemente, si ya has hecho que se inicie tu programa al pinchar sobre un archivo, solo tienes que poner esto en el form_load de tu programa:

Private Sub Form_Load()
dim scmd as string
scmd=trim(command$)
if scmd<>"" then

' si entras aqui es que en la variable scmd hay un texto, y ese texto es el camino y nombre del archivo que pinchaste en el explorador, y el explorador te lo manda como parametro

msgbox scmd

end if
End Sub
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: contextual, modificar, windows, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:01.