Problème de récupération de la fenêtre active
Le
SAUVEGECLERC.ISABELLE
Bonjours à tous.
J'ai essayé coder un programme qui inscrit dans un fichier le titre de la
fenêtre active et qui le réinscrit quand le titre de la fenêtre active
change.
Donc voilà mon code (En C) :
Code:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
char DernierNomFenetre[256]="";
int main()
{
FILE* fichier = NULL;
fichier = fopen("fichier.txt", "a+");
HWND windowsActive = GetActiveWindow(); /* récupère le Handle de la
fenêtre active */
PSTR titreWindowsActive;
printf("Test de nom de fenetre lance");
while(1)
{
GetWindowText(windowsActive, titreWindowsActive, 255); /*Récupère le
titre de la fenêtre active grâce à son Handle*/
if(strcmp(titreWindowsActive, DernierNomFenetre)) /*Si strcmp = 0
alors la fenêtre n'a pas changé*/
{
char message[300];
strcpy(DernierNomFenetre, titreWindowsActive); /*Met le nom de
la nouvelle fenêtre dans le nom de l'ancienne fenêtre*/
wsprintf(message, "Fenêtre : %s", titreWindowsActive);
fprintf(fichier, "%s", message);
fclose(fichier);
}
else
{
}
Sleep(10);
}
return EXIT_SUCCESS;
}Mais dans mon fichier.txt j'ai : "Fenêtre : U?åfì¡ !@" et je ne comprends
pas pourquoi Pourriez-vous m'aider ? Merci.
J'ai essayé coder un programme qui inscrit dans un fichier le titre de la
fenêtre active et qui le réinscrit quand le titre de la fenêtre active
change.
Donc voilà mon code (En C) :
Code:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
char DernierNomFenetre[256]="";
int main()
{
FILE* fichier = NULL;
fichier = fopen("fichier.txt", "a+");
HWND windowsActive = GetActiveWindow(); /* récupère le Handle de la
fenêtre active */
PSTR titreWindowsActive;
printf("Test de nom de fenetre lance");
while(1)
{
GetWindowText(windowsActive, titreWindowsActive, 255); /*Récupère le
titre de la fenêtre active grâce à son Handle*/
if(strcmp(titreWindowsActive, DernierNomFenetre)) /*Si strcmp = 0
alors la fenêtre n'a pas changé*/
{
char message[300];
strcpy(DernierNomFenetre, titreWindowsActive); /*Met le nom de
la nouvelle fenêtre dans le nom de l'ancienne fenêtre*/
wsprintf(message, "Fenêtre : %s", titreWindowsActive);
fprintf(fichier, "%s", message);
fclose(fichier);
}
else
{
}
Sleep(10);
}
return EXIT_SUCCESS;
}Mais dans mon fichier.txt j'ai : "Fenêtre : U?åfì¡ !@" et je ne comprends
pas pourquoi Pourriez-vous m'aider ? Merci.

Poser une question


Non défini =>
char titreWindowsActive[255];
Ce n'est pas GetActiveWindow(), mais GetForegroundWindow()
Tu fermes le fichier dans la boucle sans le réouvrir
Tu ne rappelles pas windowsActive = GetForegroundWindow(); ds la
boucle
(et Sleep(), c'est en millisecondes sous Windows)
Pour un ex win32 plus évolué, voir LISWatch de Richter
http://www.microsoft.com/msj/0397/W...20397.aspx