Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de récupération de la fenêtre active

2 réponses
Avatar
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...\n\n");

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, "\nFenêtre : %s", titreWindowsActive);
fprintf(fichier, "%s\n", 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.

2 réponses

Avatar
Christian ASTOR
On 5 mar, 16:48, "SAUVEGECLERC.ISABELLE"
wrote:

    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
Avatar
SAUVEGECLERC.ISABELLE
Merci Christian ASTOR pour ces informations.