powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Запустить bcdedit.exe на x64 из-под 32-битного приложения
3 сообщений из 3, страница 1 из 1
Запустить bcdedit.exe на x64 из-под 32-битного приложения
    #36794212
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OS: Vista/2008/7 x64
Прога которая должна запускать bcdedit 32-битная (vb6).
Надо запустить bcdedit с параметрами (enable/disable TESTSIGNING mode)
Использую Shell...
ну естественно исх. прога запускается "от Администратора"

В принципе проблем с запуском x64-приложения из-под 32-bit приложения через Shell нету
Кстати bcdedit похоже само 32-битное...
Проблема в другом: 32-битное приложение не видит 64-битные пути

Немного поисследовал:

В system32 лежит 64-битное cmd.exe: из-под него команда bcdedit воспринимается
В sysWOW лежит 32-битное cmd.exe: из-под него команда bcdedit НЕ воспринимается

Еще вот какая ерунда. Если я смотрю в проводнике, то bcdedit.exe якобы находится в System32, на самом деле ее там нет ни в System32 ни в SysWOW64 (оба эти пути вычислить из проги через API не проблема)
Элементарный поиск через far показывает что bcdedit реально находится в
windows\WINSXS\черт_знает_что
Но в WINSXS очень много всего, т.е. программный поиск быстрым не будет, вариант тупого поиска пути к bcdedit.exe не очень привлекает.

Пытался также делать
Shell ("<system32Path>\cmd.exe /c bcdedit.exe -set ..."), ...
Shell ("<sysWOW64Path>\cmd.exe /c bcdedit.exe -set ..."), ...
но винды на обе команды подкидывают 32-битную версию cmd.exe и это опять не проходит.

Как вариант конечно можно попробовать скомпилировать простенькое 64-битное "приложение-переходник", которое надеюсь будет "видеть путь", но опять же, хотелось бы без "наворотов".

Есть ли какие-нибудь здравые соображения еще?
...
Рейтинг: 0 / 0
Запустить bcdedit.exe на x64 из-под 32-битного приложения
    #36794242
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант можно
1) скопировать system32\cmd.exe
в скажем
AppPath\cmd64.exe
2) Тогда команда
Shell ("AppPath\cmd64.exe /c bcdedit.exe -set ..."), ...
сработает как хотелось, типа кривоватое но решение....

М.б. существует что-то вместо cmd.exe?
...
Рейтинг: 0 / 0
Запустить bcdedit.exe на x64 из-под 32-битного приложения
    #36794637
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>1) скопировать system32\cmd.exe
32-битная прога это сделает неправильно.
Обходится так:

Данный код запустит именно 64-битную зрячую cmd:
Код: plaintext
1.
2.
        ShellAndContinue "subst.exe k: c:\windows\system32", vbHide
        ShellAndContinue "k:\cmd.exe /c bcdedit /set TESTSIGNING ON", vbHide
        ShellAndContinue "subst.exe k: /d", vbHide
Диск k:-условно, первый свободный вычисляется через прогу.
Точный путь к system32 тоже вычисляется через API
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Запустить bcdedit.exe на x64 из-под 32-битного приложения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]