Ajuda, pegar tituloda janela que esta em foco
-
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.
-
O que é o erro estranho?
-
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...
-
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.
-
nao resolve, pq eu nao sei qual esta em foco, pois a aplicaçao vai ficar em segundo plano.
-
@
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