Iskatelну слушай, бро, ты такой привередливый:)
(py27_32) user@AMD c:\work\tuts\python\stuff
> python
Python 2.7.12 |Continuum Analytics, Inc.| (default, Jun 29 2016, 11:42:13) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import run64from32
>>> with run64from32.disable_file_system_redirection():
... run64from32.LaunchWin32Process('c:\\windows\\system32\\pnputil.exe')
...
>>> Служебная программа PnP Майкрософт
Использование:
------
pnputil.exe [-f | -i] [ -? | -a | -d | -e ] <имя INF-файла>
Примеры:
pnputil.exe -a a:\usbcam\USBCAM.INF -> Добавляет пакет, указанный USBCAM.INF
pnputil.exe -a c:\drivers\*.inf -> Добавляет все пакеты в c:\drivers\
pnputil.exe -i -a a:\usbcam\USBCAM.INF -> Установка пакета драйверов
pnputil.exe -e -> Перечисляет все сторонние пакеты
pnputil.exe -d oem0.inf -> Удаляет пакет oem0.inf
pnputil.exe -f -d oem0.inf -> Принуждает удалить пакет oem0.inf
pnputil.exe -? -> Выводит эту справку
>>>
# run64from32.py
import win32process
import sys
import ctypes
def LaunchWin32Process(command):
try:
StartupInfo = win32process.STARTUPINFO()
win32process.CreateProcess(
None,
command,
None,
None,
0,
win32process.NORMAL_PRIORITY_CLASS,
None,
None,
StartupInfo)
except Exception as e:
print(sys.exc_info())
print("Exception in LaunchWin32Process")
pass
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
Ссылки по теме:
activestate,
stack