Windows에서 다른 프로세스의 환경 변수가 있는지 확인하는 방법이 있습니까? 반드시 존재를 확인해야하며 반드시 가치를 얻을 필요는 없습니다.다른 프로세스에서 환경 변수를 확인 하시겠습니까?
코드에서이 작업을 수행해야합니다. 유틸리티와
Windows에서 다른 프로세스의 환경 변수가 있는지 확인하는 방법이 있습니까? 반드시 존재를 확인해야하며 반드시 가치를 얻을 필요는 없습니다.다른 프로세스에서 환경 변수를 확인 하시겠습니까?
코드에서이 작업을 수행해야합니다. 유틸리티와
환경이 저장된 가상 주소를 알고있는 경우 OpenProcess
및 ReadProcessMemory
을 사용하여 다른 프로세스에서 환경을 읽을 수 있습니다. 그러나 가상 주소를 찾으려면 프로세스의 스레드 중 하나 인 Thread Information Block을 훑어 볼 필요가 있습니다.
을 호출 한 후 GetThreadContext()
으로 전화해야합니다. 그러나 이들을 호출하려면 CreateToolhelp32Snapshot
을 TH32CS_SNAPTHREAD
플래그로 호출하여 프로세스의 스냅 샷을 생성하고 Thread32First
을 호출하여 프로세스의 첫 번째 스레드의 스레드 ID를 가져 와서 얻을 수있는 스레드 핸들이 필요합니다. OpenThread
스레드에 대한 핸들.
는 :
당신은 Process Explorer을 사용할 수 있습니다.
오른쪽 ... 속성에를 이동하는 과정을 클릭하고 해당 프로세스에 대한 환경 변수를 나열하는 환경 탭이 있습니다. 코드와:
이 직접 할 수있는 Win32 API를 호출 것으로 보인다,하지만 분명히이 정보에 액세스하려면 GetProcessStrings
의 결과와 바이올린을하지 않습니다. This CodeProject article에는 시작하기위한 몇 가지 코드가 있습니다.
감사합니다. 코드에서이 작업을 수행하는 방법을 찾아야합니다. – jalex
+1 큰 답변입니다. 스레드 컨텍스트 구조의 정의를 찾으려면 조금 더 파고들 필요가 있습니다. NT DDK와 와인은 그런 종류의 좋은 장소입니다. 구조의 시작 부분에서 8 번째 포인터 일 것 같네요? –