Войти

Показать полную графическую версию : [решено] Bat в 64 битной системе


Fetser
05-12-2013, 14:44
Добрый день.
Подскажите пожалуйста в какую сторону надо копать с таким BAT файлом?

start "" %WINDIR%\System32\rundll32.exe printui.dll,PrintUIEntry /s

Дело в том что на 32 битных системах он запускается без проблем, а в 64 битных нет. Путь в обех системах одинаковый. Нашёл единственное отличие что в 32 битных системах в окне DOS эта команда запускается от любого пользователя а в 64 битных только если окно открыть от имени администратора. А хотелось бы чтобы Bat запускался на любых системах.

sov44
05-12-2013, 15:19
Fetser, из гугла:
В 64-разрядных версиях Windows существуют два rundll32.exe :
для запуска 64-bit приложений: C:\Windows\System32\rundll32.exe
для запуска 32-bit приложений: C:\Windows\SysWOW64\rundll32.exe

Fetser
05-12-2013, 15:26
sov44 это я знаю, я проверял запускается именно та что в папке System32
Я пробовал в окне запущенном от имени администратора запускать с полным путём чтобы проверить какая именно версия мне нужна

Сrack
05-12-2013, 20:02
В утилите Macros можно так:

http://jpegshare.net/images/82/84/8284da7f1576392b408fa225137223ea.png (http://jpegshare.net/)

Fetser
06-12-2013, 11:11
Спасибо Сrack за подсказку насчёт Sysnative. Ошибка была именно в этом и теперь рабочий вариант BAT выглядит так:
IF EXIST "%ProgramFiles(x86)%" (
start "" %WINDIR%\Sysnative\rundll32.exe printui.dll,PrintUIEntry /s
) else (
start "" %WINDIR%\System32\rundll32.exe printui.dll,PrintUIEntry /s
)
PS для СrackПрограмма Macros действительно очень удобная, но смущает что она в скомпелированный файл засовывает себя и размер получается громадный. Bat что я сейчас написал получился более 2 Мб. Возможно конечно промежуточное решение если саму программу Macros сжать UPX то на работу не влияет, но файлы на выходе получаются на 1 Мб меньше. А вообще хочется чтобы инсталятор был с упаковкой и имел минимальный размер. Ещё раз спасибо!




© OSzone.net 2001-2012