Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/06/2004, 04:18
almengar22
 
Fecha de Ingreso: mayo-2004
Ubicación: guipuzcoa
Mensajes: 83
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola Eternal Idol!!
gracias por contestar!, yo ejecuto la aplicacion para sacar el numero de opciones, los handles.., por eso lo necesito, pero aun asi no deberia darme problema.
te voy a poner el codigo que me trae de cabeza:


codigo boton activar:

Private Sub boton_Click()
Dim SubMenu As Long
Dim y As Long
Dim w As Long
Dim Item As Long
AppActivate (retval)
For y = 0 To lst1.ListCount - 1
If lst1.Selected(y) = True Then
SubMenu = GetSubMenu(hMenu, y)
MsgBox SubMenu

MsgBox "Elemento seleccionado del primer listbox " & y

End If
Next

For w = 0 To Lst2.ListCount - 1
If Lst2.Selected(w) = True Then

Item = GetMenuItemID(SubMenu, w)

SendMessage Ventana, WM_COMMAND, Item, 0 "no se si me coge el handle"
MsgBox Item

MsgBox "Elemento seleccionado del segundo listbox " & w
End If
Next

End Sub


En el módulo:

He declarado esto:
Public Ventana As Long
Public hMenu As Long
Public subhwnd As Long
Public hwnd As Long

esta es la funcion identificar que enumera los menus, y me da informacion sobre ellos:

Public Function identificar()
'Dim hMenu As Long
Dim i As Long
Dim j As Long
Dim pos As Long
'Dim hwnd As Long
'Dim hmenu As Long
'Dim subhwnd As Long
Dim var2 As Long
Dim id As Variant
Dim ret2 As Long
Dim h As Long
Dim cont2 As Long
Dim cont As Long
Dim Total As Long
Total = 0
cont = 0
cont2 = 0
'Dim tabla(10) As Table
'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()
"AQUI HABIA PENSADO GUARDAR hwnd en VENTANA, PERO NO SALE TAMPOCO"
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


MII.cbSize = 44
MII.dwTypeData = stBuffer & Chr$(0)

MII.fType = MF_STRING

MII.cch = 80
MII.fState = MFS_DEFAULT
MII.fMask = MIIM_ID Or MIIM_STATE Or MIIM_TYPE Or MIIM_SUBMENU

lgRet = GetMenuItemInfo(hMenu, i, True, MII)
'mov = GetMenuItemID(hSubMenu, 0)

'Form1.Text3.Text = i
MII.dwTypeData = Replace(MII.dwTypeData, Chr$(0), vbNullString)
'tabla(i) = lpItemInfo.dwTypeData
'Form1.Text1.Text = tabla(i)
Form1.lst1.AddItem MII.dwTypeData

'hasta aqui
'EnableMenuItem hmenu, 0, MF_BYPOSITION

subhwnd = GetSubMenu(hMenu, i)
'id = GetMenuItemID(subhwnd, i)
GetMenuItemID hMenu, i


cont2 = GetMenuItemCount(hMenu)
Total = Total + cont2

'mas pruebas'
Form1.Label7.Caption = Total
End Function

No se si encontraras algo incorrecto, pero la verdad es que ya no se que hacer. Tienes tu prueba me la puedes mandar?, ya sé que es una tontería pero puede que encuentre alguna diferencia en algo.

Muchas gracias y espero tu respuesta.