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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #9744421
On 5 mar, 16:48, "SAUVEGECLERC.ISABELLE"

    PSTR titreWindowsActive;



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/Win32/Win320397.aspx
SAUVEGECLERC.ISABELLE
Le #9744411
Merci Christian ASTOR pour ces informations.
Publicité
Poster une réponse
Anonyme