|
|
|
Запустить bcdedit.exe на x64 из-под 32-битного приложения
|
|||
|---|---|---|---|
|
#18+
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-битное "приложение-переходник", которое надеюсь будет "видеть путь", но опять же, хотелось бы без "наворотов". Есть ли какие-нибудь здравые соображения еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2010, 18:09 |
|
||
|
Запустить bcdedit.exe на x64 из-под 32-битного приложения
|
|||
|---|---|---|---|
|
#18+
Как вариант можно 1) скопировать system32\cmd.exe в скажем AppPath\cmd64.exe 2) Тогда команда Shell ("AppPath\cmd64.exe /c bcdedit.exe -set ..."), ... сработает как хотелось, типа кривоватое но решение.... М.б. существует что-то вместо cmd.exe? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2010, 18:30 |
|
||
|
Запустить bcdedit.exe на x64 из-под 32-битного приложения
|
|||
|---|---|---|---|
|
#18+
>1) скопировать system32\cmd.exe 32-битная прога это сделает неправильно. Обходится так: Данный код запустит именно 64-битную зрячую cmd: Код: plaintext 1. 2. Точный путь к system32 тоже вычисляется через API ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 02:22 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=36794212&tid=1499438]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 452ms |

| 0 / 0 |
