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?
Configuration: Windows Vista Internet Explorer 7.0
A voir également:
- Probleme utilisation api de bases
- Notice d'utilisation - Guide
- Base de registre windows - Guide
- La ressource demandée est en cours d'utilisation ✓ - Forum Logiciels
- Leboncoin numero de telephone deja utiliser - Forum Réseaux sociaux
- Vous avez utilisé ce numéro de téléphone à de trop nombreuses reprises - Forum Gmail
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).