03/06/2004, 04:18
|
| | 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. |