Ir para conteúdo
Fórum Script Brasil
  • 0

Capiturar Click


Guest - Gustavo -

Pergunta

Guest - Gustavo -

Ola.

estou fazend um projetinho simples e estou precisando saber quando o cara clica em um determinado menu...Queria saber se o cara clicou no menu X de uma tela.

Por exemplo.

Tenho um programa (meu) que precisa saber se o cara clicou no submenu Recortar do menu Editar no Bloco de Notas.

Vocês podem me ajudar?

Valeu

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

estou fazend um projetinho simples...
Não é tão simples assim a comunicação entre duas aplicações, principalmente se uma delas não for você quem fez.

Eu sugiro o código abaixo, que é uma rotina que fica monitorando o ClipBoard. Se aparecer algum dados você faz alguma coisa.

O problema é que você não vai saber de onde veio os dados.

On Error Resume Next
Clipboard.Clear

 Do
 strClip = Clipboard.GetText
   DoEvents
      If strClip <> "" Then Exit Do
Loop While (strClip = "")
MsgBox strClip

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia...

No caso é asssim...

Eu criei um submenu dentro do menu Arquivo do bloco de notas...

Gostaria de saber se tem como saber quando o cara clicou para eu poder dar uma rotina a esse menu.

Legal esse do clipboard.

obrigado pela resposta cara, foi muito útil.

Valeu

Link para o comentário
Compartilhar em outros sites

  • 0

No caso é asssim...

Eu criei um submenu dentro do menu Arquivo do bloco de notas...

Apenas por curiosidade, como se coloca um Sub Menu no bloco de notas??

Quanto ao seu problema, a dica do Graymalkin é muito boa.

Não vejo outra alternativa a não se o uso de API's.

Link para o comentário
Compartilhar em outros sites

  • 0

Salve!

Para adicionar submenu a uma outra janela eu faço assim:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Declare Function GetMenu Lib "user32" (ByVal hWnd As Long) As Long

Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long

Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long

Private Declare Function GetMenuItemCount Lib "user32.dll" (ByVal hMenu As Long) As Long

Private Declare Function InsertMenuItem Lib "user32.dll" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPosition As Long, lpmii As 
MENUITEMINFO) As Long

Private Type POINTAPI
    x As Long
    y As Long
End Type

Private Type MENUITEMINFO
    cbSize As Long
    fMask As Long
    fType As Long
    fState As Long
    wID As Long
    hSubMenu As Long
    hbmpChecked As Long
    hbmpUnchecked As Long
    dwItemData As Long
    dwTypeData As String
    cch As Long
End Type

Private Const MIIM_STATE = &H1
Private Const MIIM_ID = &H2
Private Const MIIM_TYPE = &H10
Private Const MFT_SEPARATOR = &H800
Private Const MFT_STRING = &H0
Private Const MFS_ENABLED = &H0
Private Const MFS_CHECKED = &H8

Dim mii As MENUITEMINFO
Dim count As Long
Dim hMenu As Long
Dim h As Long
Dim hSysMenu As Long
Dim hsb As Long
Dim Pt As POINTAPI
Dim retval As Long

Private Sub Form_Load()
    h = FindWindow("Notepad", vbNullString)
    
    hsb = GetMenu(h)
    
    hSysMenu = GetSubMenu(hsb, 0)
    
    cout = GetMenuItemCount(hSysMenu)
           
    With mii
            .cbSize = Len(mii)
            .fMask = MIIM_ID Or MIIM_TYPE
            .fType = MFT_STRING
            .wID = 0
    End With
    retval = InsertMenuItem(hSysMenu, count + 1, 1, mii)
    
    count = count + 1
    
    With mii
        .fMask = MIIM_STATE Or MIIM_ID Or MIIM_TYPE
        .fType = MFT_STRING
        .fState = MFS_ENABLED
        .wID = 1
        .dwTypeData = "&Menu Adicionado"
        .cch = Len(.dwTypeData)
    End With
    retval = InsertMenuItem(hSysMenu, count + 1, 1, mii)
End Sub

Brother, só não consegui fazer o monitoramento indicado pelo Graymalkin biggrin.gif

Abraços!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Brother William, nem precisa de fazer o que eu falei. No API-Guide (http://www.allapi.net/ ou http://www.mentalis.org/) tem um exemplo de como criar uma opção e criar um callback para ela. Esse callback é uma função que será chamada quando a opção for ativada (como se fosse um evento).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...