Как запустить процесс Windows как 64-разрядный из 32-битного кода?

3 ответа

попробуйте это (из 32-битного процесса):

> %WINDIR%\sysnative\reg.exe query ...

(обнаружено, что здесь ).

12
ответ дан 3 December 2019 в 17:22
поделиться

Запущена ли 32-разрядная или 64-разрядная собственная (неуправляемая) программа, зависит только от исполняемого файла. Существует две копии reg.exe, в (64-разрядном) C:\Windows\System32 и C:\Windows\SysWOW64 (32-bit). Поскольку Вы не указываете путь, Вы получаете то, что кажется первым в PATH переменная среды, которая является 32-разрядной версией для 32-разрядного процесса.

Необходимо действительно факторизовать эту функцию в отдельную программу или COM-объект, и отметить программу с декларацией или запустить COM-объект с помощью моникера повышения COM.

8
ответ дан 3 December 2019 в 17:22
поделиться

Вы полагали, что создание маленького приложения "помощника" делает обновление реестра для Вас? Если Вы будете компилировать его в 64 бита и включать декларацию, которая указывает, что это требует прав администратора, то это покроет оба основания для Вас.

Существует API для обнаружения "разрядности" ОС, на которой Вы работаете так, Вы могли, очевидно, скомпилировать и RegistryUpdate32.exe и RegistryUpdate64.exe и назвать соответствующий.

2
ответ дан 3 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: