Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. Ajuda, pegar tituloda janela que esta em foco
Forum Updated to NodeBB v4.3 + New Features

Ajuda, pegar tituloda janela que esta em foco

Scheduled Pinned Locked Moved Portuguese
6 Posts 3 Posters 2.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    Rodrigocg
    wrote on last edited by
    #1

    Estou tentando pegar o titulo da janela que esta em foco, mas o código funciona em partes... eleexibe o resultado correto, mas em seguida ocorre um erro estranho...

    segue o código:

    @#include <iostream>
    #include <windows.h>
    #include <QDebug>

    HWND foco;
    char janela[255];

    using namespace std;
    int main()
    {

    LPTSTR p;
    int i;
    foco = GetForegroundWindow();
    GetWindowText(foco,p,255);
    
    for(i=0;i<61;i++)
        janela[i]=p[i];
    qDebug()<<janela;
    
    return 0;
    

    }
    @

    aceito dicas de outras formas de se fazer isso...

    desde ja agradeço.

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TioRoy
      wrote on last edited by
      #2

      O que é o erro estranho?

      1 Reply Last reply
      0
      • R Offline
        R Offline
        Rodrigocg
        wrote on last edited by
        #3

        o mesmo erro que acontece no windows quando tentamos acessar uma posiçao de um vetor que nao existe... o problema é que o codigo funciona, e eu nao sei de outra forma que eu possa converter uma variavel do tipo LPTSTR para um vetor do tipo char...

        1 Reply Last reply
        0
        • J Offline
          J Offline
          jeanrl
          wrote on last edited by
          #4

          Não sei se entendi direito e talvez esteja falando bobagem, mas isso não resolve:

          ui->label_2->setText(this->windowTitle());

          Ou no momento da informação vc não sabe qual janela está com foco?

          Abraços.

          1 Reply Last reply
          0
          • R Offline
            R Offline
            Rodrigocg
            wrote on last edited by
            #5

            nao resolve, pq eu nao sei qual esta em foco, pois a aplicaçao vai ficar em segundo plano.

            1 Reply Last reply
            0
            • T Offline
              T Offline
              TioRoy
              wrote on last edited by
              #6

              @
              for(i=0;i<61;i++)
              janela[i]=p[i];
              @

              Como você sabe que o LPTSTR tem 61 bytes?

              No Windows, se a compilação é feita com UNICODE (que é o caso do Qt), LPTSTR = LPWSTR = wchar_t.

              Você precisa usar algo como wcstombs ou WideCharToMultiByte para converter primeiro, se quiser um char*.
              Ou use o "fromWCharArray":http://qt-project.org/doc/qt-4.8/qstring.html#fromWCharArray do QString

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved