0 / 0 / 0
Регистрация: 09.01.2013
Сообщений: 17
1

Запуск bat-файла из сторонней программы

09.01.2013, 17:14. Показов 4100. Ответов 11
Метки нет (Все метки)

Вероятно нубский вопрос, но у меня уже голова пухнет. т.к. не могу понять причины проходящего, не знаю что искать. Изучение Faq не помогло.
Суть задачи: есть вот такой примитивный бантик:
Windows Batch file
1
2
echo off
lpksetup
Он открывает в 8рке диалоговое окно установки языка и не ругается.
Проблема в том, что я клепал авторан (прогой AutoRunCD) куда вставил ссылку на этот бант. И когда к этому банту обращается программа, cmd пишет что lpksetup не является внутренней или внешней командой, бла бла бла... Хотя если тот же самый бат запустить руками, то всё замечательно работает.

Единственное что отличается, так это путь который пишется в командной строке. Если запускаю руками путь полный, а если запускает программа то путь просто в корне диска (H: ) на котором лежит бат, но это ведь не важно, да?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2013, 17:14
Ответы с готовыми решениями:

Запуск программы из bat-файла с передачей данных
Здравствуйте, возникла проблема , не могу разобраться как сделать данную утилиту. У меня есть...

Запуск файла в директории с .bat, когда .bat запущен от имени администратора
Здравствуйте. Имею бат, он должен запускать файл "<тут директория батника>\n1.bat". Но если даже...

Последовательный запуск нескольких BAT-файлов из основного BAT-файла
Доброго времени суток всем... Помогите кто понимает.. Есть bat... @echo off start "" "D:\$\Pale...

Запуск bat-файла из vbs-файла от имени указанного пользователя
Здравствуйте форумчане, натолкните пожалуйста как можно реализовать выполнение bat файла такого...

11
Эксперт WindowsАвтор FAQ
17951 / 7588 / 889
Регистрация: 25.12.2011
Сообщений: 11,317
Записей в блоге: 17
09.01.2013, 17:38 2
Путь будет зависеть от того, где находится бат и с какими правами его запускают.

Поместите бат рядом с программой lpksetup, а в бате пропишите такой путь:
Bash
1
2
@echo off
start "" "%~dp0lpksetup"
0
0 / 0 / 0
Регистрация: 09.01.2013
Сообщений: 17
09.01.2013, 17:42  [ТС] 3
проблема в том что это не программа, это просто консольная команда которая вызывает, скорее всего, shell панели управления
0
Эксперт WindowsАвтор FAQ
17951 / 7588 / 889
Регистрация: 25.12.2011
Сообщений: 11,317
Записей в блоге: 17
09.01.2013, 17:46 4
Приведенной информации не достаточно, чтобы понять из конкретно каких путей что у Вас должно открываться.
0
0 / 0 / 0
Регистрация: 09.01.2013
Сообщений: 17
09.01.2013, 18:10  [ТС] 5
Ну я вообще-то не уверен что дело в пути, я лишь сказал что это единственное различие которое я заметил. Опишу подробнее. Для руссификации ОС Win частенько используются так называемые MUI пакеты. Сам по себе это просто cab архив, и чтобы такой пакет установить нужно через панель управления зайти в "Установку дополнительных языков" или как-то так, где этот архив указывается после нажатия кнопки "обзор". После этого происходит установка языка (в данном случае руссификация) из этого архива. Так было в 7рке, но в 8рке всё чуть посложнее - через панель управления в это диалоговое окно уже не попасть, однако его по прежнему можно вызвать консольной командой lpksetup (очевидно сокращение от Language Pack Setup). Ну вот тут я и столкнулся с проблемой, что данная консольная команда через бат, который запущен сторонним приложением, отказывается работать. Однако работает если бат запустить ручками.

Добавлено через 17 минут
Экзешник такой всё же оказывается есть, и лежит он в C:\Windows\System32. Но не хотелось бы его оттуда доставать, нельзя ли его прямо оттуда запустить?
0
Эксперт WindowsАвтор FAQ
17951 / 7588 / 889
Регистрация: 25.12.2011
Сообщений: 11,317
Записей в блоге: 17
09.01.2013, 18:35 6
Не вижу проблем в Вашем коде. Можно и так:
Bash
1
start "" "%windir%\system32\lpksetup.exe"
1
0 / 0 / 0
Регистрация: 09.01.2013
Сообщений: 17
10.01.2013, 00:36  [ТС] 7
Спасибо за подсказку!
Windows Batch file
1
2
3
echo off
start "" "%windir%\system32\lpksetup.exe"
pause
Вроде со скриптом всё в порядке, запускаю такой бат и всё открывается (можете сами проверить).
Далее в проге создаю кнопку, которая запускает этот бат. Однако когда клацаю эту кнопку в готовом окошке авторана то получаю следующее (скопировано с окна cmd):
Код
H:\>Echo off
Не удается найти указанный файл С:\Windows\system32\lpksetup.exe
Для продолжения нажмите люблю клавишу...
Как такое может быть? Файл то там есть, почему он не может его найти?
0
Pure Free Digital Ghost
4598 / 1910 / 370
Регистрация: 06.01.2013
Сообщений: 4,564
10.01.2013, 11:50 8
Может, флешка не имеет доступа к компу (антивирь, gpedit и т.д.)
0
0 / 0 / 0
Регистрация: 09.01.2013
Сообщений: 17
10.01.2013, 13:23  [ТС] 9
Может, флешка не имеет доступа к компу (антивирь, gpedit и т.д.)
Была такая идея, делал вопию на винт, та-же фигня. Антивир стоит Microsoft Essentails, молчит. Программу запускаю из под администратора. SmartScreen отключил. К слову, система Win8х64 Enterprise
0
Pure Free Digital Ghost
4598 / 1910 / 370
Регистрация: 06.01.2013
Сообщений: 4,564
10.01.2013, 14:29 10
Win8х64 Enterprise
Может пробоема с х64
Попробуй так:
%windir%\system32\lpksetup.exe

Добавлено через 7 минут
А уже было

Добавлено через 4 минуты
Попробуй после самой первой строчки прописать
Bash
1
setlocal
0
0 / 0 / 0
Регистрация: 09.01.2013
Сообщений: 17
10.01.2013, 14:43  [ТС] 11
Windows Batch file
1
2
3
4
echo off
setlocal
start "" "%windir%\system32\lpksetup.exe"
pause
В итоге вот:
Код
F:\Soft\AutoRunCD>echo off
Не удается найти файл C:\Windows\system32\lpksetup.exe.
Для продолжения нажмите любую клавишу . . .
Вообще я уже решил проблему, скопировал lpksetup.exe в папку с скриптом, вроде работает. Но из любопытства всё ещё пытаюсь запустить её с С диска. Похоже проблема с правами доступа к С диску у программы, не смотря даже на то, что она запускается с правами администратора. А можно как-нибудь запустить бат с правами админа?
0
Эксперт WindowsАвтор FAQ
17951 / 7588 / 889
Регистрация: 25.12.2011
Сообщений: 11,317
Записей в блоге: 17
10.01.2013, 15:26 12
Цитата Сообщение от Akiyamka Посмотреть сообщение
А можно как-нибудь запустить бат с правами админа?
Можно. Например так: Тонкости языка, редкие команды и сложные скрипты
У бат-файла должны быть права на создание файла в папке рядом с собой.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2013, 15:26
Помогаю со студенческими работами здесь

Запуск bat-файла для копирования определённого файла по сети из Планировщика заданий
Добрый день, Имеется в наличии скрипт на копирование файла по сети. net use Y:...

Запуск bat-файла при закрытии текстового файла
Доброго времени суток всем, помогите, пожалуйста, дело в том, что мне нужно написать батник,...

Запуск bat файла
Как сделать так, чтобы бат-файл автоматически запустился? Допустим при старте виндовса, или когда...

Создание скрипта, который осуществлет запуск обработки кнопки "ОК" из сторонней программы(+)
Всем салют!! Не знаю сюда вопрос или нет, в общем проблема такая - есть сторонняя программа,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru