Probleme utilisation api de bases
chuko
-
chuko -
chuko -
Bonjour,a tous voila je me suis mis a utiliser les api windows pour ce faire je teste les plus courante dans des petit programme console en me referent a la MSDN de microsoft.Bref je bute sur l'utilisation de GetModuleHandle
qui d'apres la MSDN recupere le handle d'un processus mon probleme etant que la valeur que me renvoi cette fonction et NULL ce qui veut dire que la fonction merde mais je ne sais pas pk .Voici le code;
int main()
{
HMODULE GetModH;
LPCTSTR FileMod="C:\\Program Files\\Internet Explorer\\iexplore.exe";
GetModH = GetModuleHandle(FileMod);
if((GetModH = GetModuleHandle(FileMod))==NULL)
{
printf("erreur getmodulehandle\n");
}
else
{
printf("GetModuleHandle ok\n");
}
system("PAUSE");
return 0;
}
si quelqu'un peut m'eclairer ce serait sympa auraije mal comprit le but de cette api?
qui d'apres la MSDN recupere le handle d'un processus mon probleme etant que la valeur que me renvoi cette fonction et NULL ce qui veut dire que la fonction merde mais je ne sais pas pk .Voici le code;
int main()
{
HMODULE GetModH;
LPCTSTR FileMod="C:\\Program Files\\Internet Explorer\\iexplore.exe";
GetModH = GetModuleHandle(FileMod);
if((GetModH = GetModuleHandle(FileMod))==NULL)
{
printf("erreur getmodulehandle\n");
}
else
{
printf("GetModuleHandle ok\n");
}
system("PAUSE");
return 0;
}
si quelqu'un peut m'eclairer ce serait sympa auraije mal comprit le but de cette api?
A voir également:
- Probleme utilisation api de bases
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Base de registre - Guide
- La ressource demandée est en cours d'utilisation - Forum Téléphones & tablettes Android
- Logiciel en Cours d'utilisation ? ✓ - Forum Logiciels
2 réponses
GetModuleHandle c'est pour récupérer un handle sur un module qui est déjà chargé dans la mémoire de ton processus, comme par exemple les dll que tu utilises.
En réalité il faut que tu récupères l'id des processus en cours avec EnumProcesses
Pour chacun de ces id, tu ouvres le processus pour obtenir un handle dessus avec OpenProcess.
Ensuite grâce à ces handles tu compares le nom de chacun de tes processus avec le nom de celui que tu cherches.
Si tu cherches par rapport au chemin complet vers l'executable utilise GetProcessImageFileName, et GetModuleBaseName si c'est juste par rapport au nom du processus.
Voilà une fois que la comparaison est bonne tu as ton handle.
N'oublie pas de fermer tes handle au fur et à mesure (CloseHandle).
En réalité il faut que tu récupères l'id des processus en cours avec EnumProcesses
Pour chacun de ces id, tu ouvres le processus pour obtenir un handle dessus avec OpenProcess.
Ensuite grâce à ces handles tu compares le nom de chacun de tes processus avec le nom de celui que tu cherches.
Si tu cherches par rapport au chemin complet vers l'executable utilise GetProcessImageFileName, et GetModuleBaseName si c'est juste par rapport au nom du processus.
Voilà une fois que la comparaison est bonne tu as ton handle.
N'oublie pas de fermer tes handle au fur et à mesure (CloseHandle).