Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Como pegar nome de janela ativa em C/C++ ?

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Como pegar nome de janela ativa em C/C++ ?

    Pessoal, estou tentando criar um keylogger (mais para estudo mesmo). Ele já está capturando as teclas tranquilamente, porém quero saber também em qual janela aquilo foi digitado. Podem me ajudar? Sou novato em C/C++, uso o Dev-C++


  • Font Size
    #2
    Usa a função GetActiveWindow(), ela é nativa do windows.

    Documentação dela: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Achei esse código aqui, não sei se funciona, pois não programo em C.

    HWND foreground = GetForegroundWindow();
    if (foreground)
    {
    char window_title[256];
    GetWindowText(foreground, window_title, 256);
    }
    Boa sorte.

    Dica: pesquise pela função em inglês, os resultados serão bem melhores.
    .

    - PHP & VB C0d3r.

    Nickguitar.dll@hotmail.com

    http://www.youtube.com/user/superskate56 <~ Hacking tuts =)

    Quando aprendemos a ouvir, também aprendemos a falar..
    Quando aprendemos a ler, também aprendemos a escrever.
    Então, quando aprendemos a usar um computador, por que não aprender a programa-lo ?


    I'm C0ding for $$$

    #~: Just $this :~#

    Comment


    • Font Size
      #3
      Vlw Nick

      Usei a GetForegroundWindow() para pegar a janela ativa no momento e depois usei a GetWindowText() para pegar o título dela. rs

      Comment


      • Font Size
        #4
        Script_Fail, poderia me ajudar no uso do método GetWindowText() ?

        Com base na documentação da msdn, eu produzi este código:

        Código:
        #include <stdio.h>
        #include <windows.h>
        
        int main()
        {
            HWND janela;
            LPSTR nome;
            
            janela = GetForegroundWindow();
            
            printf("Janela Atual: %s\n", GetWindowText(janela, nome, 255));
        
            system("pause");
            
            return 0;
        }
        ...mas parece que não está funcionando corretamente.
        "Não subestime os fracos pois eles não agem com a força e sim com a mente."

        Comment


        • Font Size
          #5
          Postado Originalmente por Radicalzinho Ver Post
          Script_Fail, poderia me ajudar no uso do método GetWindowText() ?

          Com base na documentação da msdn, eu produzi este código:

          Código:
          #include <stdio.h>
          #include <windows.h>
          
          int main()
          {
              HWND janela;
              LPSTR nome;
              
              janela = GetForegroundWindow();
              
              printf("Janela Atual: %s\n", GetWindowText(janela, nome, 255));
          
              system("pause");
              
              return 0;
          }
          ...mas parece que não está funcionando corretamente.

          Resolvi o problema. Se alguém estiver com o mesmo erro, tenta não usar o método GetWindowText dentro de um printf, pois quando usado o mesmo, ele atribui o nome da janela para a variável do segundo parâmetro, no meu caso, a variável nome. Sendo assim, este método não retorna o titulo da janela, causando erro na hora de imprimir o valor retornado.

          Código Corrigido:

          Código:
          #include <stdio.h>
          #include <windows.h>
          
          int main()
          {
              HWND janela;
              char nome[256];
          
              janela = GetForegroundWindow();
          
              if(janela)
              {
                  GetWindowText(janela, nome, 256);
                  printf("Janela: %s\n", nome);
              }
          
              return 0;
          }

          "Não subestime os fracos pois eles não agem com a força e sim com a mente."

          Comment


          • Font Size
            #6
            Postado Originalmente por Script_Fail Ver Post
            Vlw Nick

            Usei a GetForegroundWindow() para pegar a janela ativa no momento e depois usei a GetWindowText() para pegar o título dela. rs
            E como eu faço isso no linux?
            Aqui indica que eu não tenho a biblioteca window.h

            Comment

            X
            Working...
            X