Oppure

Loading
29/08/09 19:25
NewAge
Come faccio a prendere il titolo della finestra in primo piano?
    Private Function GetActiveWindowTitle() As String
        Dim MyStr As String
        MyStr = New String(Chr(0), 100)
        GetWindowText(GetForegroundWindow, MyStr, 100)
        MyStr = MyStr.Substring(0, InStr(MyStr, Chr(0)) - 1)

        Return MyStr
    End Function

Questa è la funzione in vb.net, come faccio a tradurla in c++?
aaa
29/08/09 19:31
Dax89
Ciao!
Ecco la funzione che cerchi scritta in C++.

void GetActiveWindowTitle(char* pTitle, int size)
{
  GetWindowText(GetForegroundWindow(), pTitle, size);
}


Per usarla:
char title[255];
GetActiveWindowTitle(title, 255);
Ultima modifica effettuata da Dax89 29/08/09 19:33
aaa
29/08/09 19:40
NewAge
wow, così semplice? Grazie mille!

Mi restituisce errore

'GetWindowTextW': impossibile convertire il parametro 2 da 'char *' a 'LPWSTR'
Ultima modifica effettuata da NewAge 29/08/09 19:45
aaa
29/08/09 19:47
Dax89
Usa la versione ANSI dell'API di windows GetWindowText()

void GetActiveWindowTitle(char* pTitle, int size) 
{ 
  GetWindowTextA(GetForegroundWindow(), pTitle, size); 
}


Se vuoi usare la versione UNICODE:

void GetActiveWindowTitle(wchar_t* pTitle, int size) 
{ 
  GetWindowTextW(GetForegroundWindow(), pTitle, size); 
}


E si usa (per la versione UNICODE):
wchar_t title[255];
GetActiveWindowTitle(title, 255);
Ultima modifica effettuata da Dax89 29/08/09 19:50
aaa
29/08/09 20:02
NewAge
Nada... niente da fare, mi da un errore peggio del precedente

"

1>cpp keylogger.obj : error LNK2028: al token non risolto (0A000298) "extern "C" struct HWND__ * __stdcall GetForegroundWindow(void)" (?GetForegroundWindow@@$$J10YGPAUHWND__@@XZ) si fa riferimento nella funzione "void __cdecl GetActiveWindowTitle(wchar_t *,int)" (?GetActiveWindowTitle@@$$FYAXPA_WH@Z)
1>cpp keylogger.obj : error LNK2028: al token non risolto (0A000299) "extern "C" int __stdcall GetWindowTextW(struct HWND__ *,wchar_t *,int)" (?GetWindowTextW@@$$J212YGHPAUHWND__@@PA_WH@Z) si fa riferimento nella funzione "void __cdecl GetActiveWindowTitle(wchar_t *,int)" (?GetActiveWindowTitle@@$$FYAXPA_WH@Z)
1>cpp keylogger.obj : error LNK2019: riferimento al simbolo esterno "extern "C" int __stdcall GetWindowTextW(struct HWND__ *,wchar_t *,int)" (?GetWindowTextW@@$$J212YGHPAUHWND__@@PA_WH@Z) non risolto nella funzione "void __cdecl GetActiveWindowTitle(wchar_t *,int)" (?GetActiveWindowTitle@@$$FYAXPA_WH@Z)
1>cpp keylogger.obj : error LNK2019: riferimento al simbolo esterno "extern "C" struct HWND__ * __stdcall GetForegroundWindow(void)" (?GetForegroundWindow@@$$J10YGPAUHWND__@@XZ) non risolto nella funzione "void __cdecl GetActiveWindowTitle(wchar_t *,int)" (?GetActiveWindowTitle@@$$FYAXPA_WH@Z)
1>C:\Documents and Settings\prova\Documenti\Visual Studio 2008\Projects\cpp keylogger\Debug\cpp keylogger.exe : fatal error LNK1120: 4 esterni non risolti

"


Potresti postarmi tutto il codice? Grazie ancora
aaa
29/08/09 20:08
Dax89
Il codice è tutto lì.

Quegli errori provengono dal linker e sta a significare che non hai importato una o più librerie statiche.

Servono più informazioni:
Che Ambiente di sviluppo stai utilizzando???
Che tipo di progetto hai creato???
Ultima modifica effettuata da Dax89 29/08/09 20:10
aaa
29/08/09 20:12
NewAge
Sto usando Microsoft Visual c++ 2008 e ho creato un progetto console
aaa
29/08/09 21:03
Dax89
Devi creare un Progetto Win32, non un Progetto Console ;)
aaa