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) :
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
On 5 mar, 16:48, "SAUVEGECLERC.ISABELLE"
<SAUVEGECLERC.ISABE...@wanadoo.fr> 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
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