1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB6

Discussão em 'Programação' iniciada por JomarB, 10 de Novembro de 2006. (Respostas: 9; Visualizações: 1095)

  1. JomarB

    JomarB Power Member

    Ola pessoal, estou somente agora programando em VB6 e gostaria que voces me dessem uma ajudinha com as funcoes API, queria que me ajudassem detalhadamente para que eu podesse enteder. Se poderem gostaria que dessem um exemplo de algum programa que que tenha haver com asfuncoes API.:wow:
     
    Última edição: 10 de Novembro de 2006
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Tens vários sites que podes usar para alguma ajuda relacionada com API.
    http://www.allapi.net é um bom exemplo dum site que eu ainda uso.

    Um exemplo para tu dares já um toque na API:
    Cria um novo projecto, e acrescenta-me um timer, denominado "Timer1", e uma TextBox, "Text1", e uma ListBox "List1" e cola isto:

    Código:
    Option Explicit
     
    'EXEMPLO DE COMO USAR API
    'angelofwisdom, 10/11/2006
     
    'Declarações da API:
     
    'GetForegroundWindow - retorna o Handle da janela actual. Handle = identificação
    'GetWindowTextLength - retorna o número de caracteres do título da janela actual
    'GetWindowText       - retorna o título da janela actual, e escreve-o numa variável
    '                      dada pelo utilizador.
     
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
     
    Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" _
                                                    (ByVal hwnd As Long) As Long
     
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
                                                    (ByVal hwnd As Long, _
                                                     ByVal lpString As String, _
                                                     ByVal cch As Long _
                                                     ) As Long
     
    'Variável global: LastHandle, que contém o handle da última janela verificada.
     
    Private LastHandle
     
    Private Sub Form_Load()
        'Altera o intervalo do Timer para 100, de forma a não ocupar muito CPU
        'e ter um intervalo aceitável para verificar a janela actual.
        Timer1.Interval = 100
    End Sub
     
     
    Private Sub Timer1_Timer()
        'dimensiona cada variável
        Dim CurrentWindowHandle As Long
        Dim TextLength          As Integer
        Dim buffer              As String
     
        'verifica qual é o handle (a identificação) da janela actual
        CurrentWindowHandle = GetForegroundWindow
     
        'se a janela actual não for a janela encontrada na última verificação
        '(isto é, caso o utilizador tenha mudado de janela)
        If Not CurrentWindowHandle = LastHandle Then
     
            'verifica quantos caracteres tem o título janela actual
            TextLength = GetWindowTextLength(CurrentWindowHandle)
     
            'aumenta o buffer de modo a ter o mesmo número de espaços
            'isto é, aloca na memória o espaço suficiente para ir buscar o título
            buffer = Space(TextLength + 1)
     
            'vai buscar o título da janela actual, e vai pô-lo na variável "buffer"
            'apenas irá "pegar" em alguns bytes. Neste caso, no tamanho do buffer,
            'que, por sua vez, tem o tamanho total dos caracteres do título.
            'Desta forma, tanto se podem ir buscar 10 bytes, como 100, como todos os bytes
            'que o título da janela tem.
            GetWindowText CurrentWindowHandle, buffer, Len(buffer)
     
            'Escreve na TextBox o buffer, isto é, o título da janela actual
            Text1.Text = buffer
     
            'Adiciona, na lista, o handle da janela actual, e o respectivo título
            List1.AddItem CStr(CurrentWindowHandle) & " | " & Text1.Text
     
            'E diz que, esta janela é a última janela verificada.
            'Assim, não precisa de entrar nesta função a cada 1/10 de segundo.
            LastHandle = CurrentWindowHandle
     
        End If
     
    End Sub
     
    
    Comentei o código todo. No entanto, aviso-te já que não sou propriamente um bom professor...

    Espero que ajude :) se precisares de alguma ajuda suplementar, pede ;)

    Cumprimentos [[[[[[[[[[]]]]]]]]]]
    angelofwisdom
     
    Última edição: 10 de Novembro de 2006
  3. JomarB

    JomarB Power Member

    Valeu

    Valeu pela ajuda caro angelofwisdom vbmenu_register("postmenu_1250011", true); :kfold: valeu mesmo ya.
    Agradecimentos ao quadrado.:x2:
     
    Última edição: 28 de Novembro de 2006
  4. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Anytime :)
     
  5. JomarB

    JomarB Power Member

    Dica

    Come brada sera que me poderias indicar sites em portugues, a minha nota em Ingles nao passa de 17 e me fica um bocado dificil entender o que la esta.:)
     
    Última edição: 12 de Novembro de 2006
  6. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Muito sinceramente, em português não sei... mas se vais ficar na área de programação, acredita que saber inglês é precioso. Vê lá tu que até eu entrar no 10º ano, pensava que Inglês era obrigatório... enquanto que não passa de mais uma disciplina.

    Estar no mundo da informática e não saber inglês... epah, não consigo encontrar uma analogia ao que é :-D mas acredita que não irás poder usufruir duma grande parte daquilo que a internet te pode dar.

    Abraços [[[[[[]]]]]]]
    angelofwisdom

    p.s.: acho que com 17 tinhas o dever de entender o que lá está :-D

    p.p.s.: o que é suposto dizeres com "come brada"? :confused:
     
  7. HecKel

    HecKel The WORM

    Em parte concordo com o angelofwisdom pois inglês é algo realmente importante para um informático, quanto mais cedo de habituares com o inglês técnico melhor.

    No entanto tal como referi..., é inglês técnico e tu com 16 anos é aceitável teres dificuldades (eu mesmo sinto dificuldade em algumas expressões), mas nada como perguntar ;)

    abraços, HecKel
     
  8. JomarB

    JomarB Power Member

    Come Brada

    Ca em Angola Come Brada e mais ou menos chamar alguem mas com todo o respeito tas a ver:wow:
     
  9. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Notei agora, depois de ter "postado" no fórum inglês de visual basic, que estás lá a colocar a mesma questão. Ainda precisas de alguma ajuda extra? É que num fórum ingles, vão-te dar links em inglês....

    p.s.: só notei que eras tu depois de eu te ter respondido ;)

    Cumps [[[[[[]]]]]]
    angelofwisdom
     
  10. JomarB

    JomarB Power Member

    .......

    Estive a notar que quando declaramos a funcao API ela traz consigo alguns parametros:) .
    Agora me digam, sera que para chamar a funcao API devo primeiro criar uma variavel de retorno ?e depois devo tambem trabalhar com os parametros da funcao? caso tenha de o fazer como devo?:)
     
    Última edição: 28 de Novembro de 2006

Partilhar esta Página