Учитывая РУЧКУ (или ProcessID) для обработки 'A', возможно ли на Win32 для несвязанного процесса 'B' определить текущий рабочий каталог процесса 'A'?
Да, но это нетривиально. Единственный способ, о котором я знаю, - это использовать CreateRemoteThread для выполнения GetCurrentDirectory в контексте целевой программы.
CreateRemoteThread
GetCurrentDirectory
Я подумал, что это возможно, используя ту же технику, которую вы можете использовать для получения командной строки внешних процессов , и, похоже, _RTL_USER_PROCESS_PARAMETERS->CurrentDirectoryPath звучит многообещающе.
_RTL_USER_PROCESS_PARAMETERS->CurrentDirectoryPath
(В примере не говорится, что API в значительной степени недокументированы и что они не пригодны для использования в будущем , поэтому YMMV) * 1008 *