Sous Windows, existe-t-il un moyen de vérifier l’existence d’une variable d’environnement pour un autre processus? Juste besoin de vérifier l’existence, pas nécessairement obtenir de la valeur.
Je dois le faire à partir de code.
Si vous connaissez l’adresse virtuelle à laquelle l’environnement est stocké, vous pouvez utiliser OpenProcess
et ReadProcessMemory
pour lire l’environnement à partir de l’autre processus. Cependant, pour trouver l’adresse virtuelle, vous devez vous débrouiller dans le bloc d’informations sur les threads de l’un des threads du processus.
Pour obtenir cela, vous devez appeler GetThreadContext()
après avoir appelé SuspendThread()
. Mais pour les appeler, vous avez besoin d’un handle de thread, que vous pouvez obtenir en appelant CreateToolhelp32Snapshot
avec l’indicateur TH32CS_SNAPTHREAD
pour créer un instantané du processus, Thread32First
pour obtenir l’ID de thread du premier thread du processus et OpenThread
une poignée au fil.
Avec un utilitaire:
Vous pouvez utiliser Process Explorer .
Faites un clic droit sur le processus, allez à Propriétés … et il y a un onglet Environnement qui répertorie les variables d’environnement pour ce processus.
Avec code:
Il ne semble pas y avoir d’appel de l’API Win32 pour le faire directement, mais apparemment, vous GetProcessSsortingngs
les résultats de GetProcessSsortingngs
pour accéder à ces informations. Cet article CodeProject contient du code pour vous aider à démarrer.