Foros del Web » Programación para mayores de 30 ;) » Programación General »

guardar la posicion del menu

Estas en el tema de guardar la posicion del menu en el foro de Programación General en Foros del Web. Hola me gustaría saber si podriais decirme como guardar la posicion de un menu de una aplicación que ejecutado con una shell. En este programa ...
  #1 (permalink)  
Antiguo 20/05/2004, 03:51
 
Fecha de Ingreso: mayo-2004
Ubicación: guipuzcoa
Mensajes: 83
Antigüedad: 20 años, 6 meses
Puntos: 0
guardar la posicion del menu

Hola me gustaría saber si podriais decirme como guardar la posicion de un menu de una aplicación que ejecutado con una shell. En este programa lo que quiero es poder moverme en las cuatro direcciones por el menu de cualquier aplicacion de windows(trabajo con visual basic 6.0 y con mis queridas APIS). Tal vez os sirva de ayuda saber que guardo las opciones en orden en una listbox(para tener informacion), a ver si con eso podeis ayudarme un poco el codigo es este:

Dim i As Long
Dim j As Long
Dim hMenu As Long
Dim hwnd As Long
Dim subhwnd As Long
Dim ret2 As Long
Dim cont2 As Long
Dim cont As Long
Dim total As Long
total = 0
cont = 0
cont2 = 0
'prueba'

'Dim lngid As Long
Dim lgRet As Long
Dim stBuffer As String * 80
'la prueba hasta aqui'
'Form1.Label5.Caption = hMenu
'obtiene el handle de la ventana activa'
hwnd = GetForegroundWindow()
Form1.Label1.Caption = hwnd
'obtiene el contexto del dispositivo de la ventana activa'
ret2 = GetAsyncKeyState(p.vkCode)



'obtener el handle del menu

hMenu = GetMenu(hwnd)
Form1.Label8.Caption = hMenu
cont = GetMenuItemCount(hMenu)
Form1.Label4.Caption = cont
For i = 0 To cont - 1
'pruebas
lpItemInfo.cbSize = 44
lpItemInfo.dwTypeData = stBuffer & Chr$(0)

lpItemInfo.fType = MF_STRING

lpItemInfo.cch = 80
lpItemInfo.fState = MFS_DEFAULT
lpItemInfo.fMask = MIIM_ID Or MIIM_STATE Or MIIM_TYPE Or MIIM_SUBMENU
'Form1.Text3.Text = lpItemInfo.fMask
lgRet = GetMenuItemInfo(hMenu, i, True, lpItemInfo)

lpItemInfo.dwTypeData = Replace(lpItemInfo.dwTypeData, Chr$(0), vbNullString)

Form1.lst1.AddItem lpItemInfo.dwTypeData

'hasta aqui


subhwnd = GetSubMenu(hMenu, i)
'lngid = GetMenuItemID(hMenu, i)
cont2 = GetMenuItemCount(hMenu)
total = total + cont2

'mas pruebas'

For j = 0 To cont2 - 1
' Mise à niveau de la structure
lpItemInfo.cbSize = 44
lpItemInfo.dwTypeData = stBuffer & Chr$(0)
lpItemInfo.fType = MF_STRING
lpItemInfo.cch = 80
lpItemInfo.fState = MFS_DEFAULT
lpItemInfo.fMask = MIIM_ID Or MIIM_STATE Or MIIM_TYPE Or MIIM_SUBMENU
' Récupère le contenu du sous-menu
lgRet = GetMenuItemInfo(subhwnd, j, True, lpItemInfo)
lpItemInfo.dwTypeData = Replace(lpItemInfo.dwTypeData, _
Chr$(0), vbNullString)
' Affiche le menu dans le contrôle ListBox
Form1.lst1.AddItem Space$(8) & lpItemInfo.dwTypeData
Next j
'aqui acaba prueba'
Next i

Form1.Label7.Caption = total


me he ayudado de una api que encontre en esta pàgina francesa:

http://docvb.free.fr/apidetail.php?idapi=11

A ver si alguien puede ayudarme, os doy las gracias de antemano y espero vuestra respuesta.

Un saludo de Alberto.
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 14:30.