Форум программистов, компьютерный форум CyberForum.ru

WinExec, запуск batch файла - C++

Восстановить пароль Регистрация
 
razor_ua
10 / 10 / 0
Регистрация: 20.05.2011
Сообщений: 71
13.10.2013, 20:10     WinExec, запуск batch файла #1
Все привет.

Делаю так:
C++
1
WinExec("Register.bat", SW_SHOW);
результат 33, т.е. больше чем 31 => все ок.

содержимое bat файла

@echo off
pushd "%~dp0"
copy /Y HideFiles.inf %SystemRoot%\System32\drivers
copy /Y HideFiles.sys %SystemRoot%\System32\drivers

В итоге, при запуске этого файла через WinExec - моргнет окошко и погаснет.
Функция вернет, что все ок.
И действительно файл как бы запустился, а файлы не были скопированы.

А если запустить bat файл вручную - все норм работает - копирует.

В чем может быть проблема?

Добавлено через 24 минуты
Запускается, если прописать полный путь к батнику. А как сделать текущий каталог?
никак не выходит...

Добавлено через 4 минуты
Даже msdn пишет, что если файл не был найден, то ищется в файле с программой
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2013, 20:10     WinExec, запуск batch файла
Посмотрите здесь:

Запуск файла C++
запуск файла C++
Batch file C++
C++ ShellExecute WinExec ....
c++, запуск файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14209 / 6224 / 987
Регистрация: 02.05.2013
Сообщений: 10,374
Завершенные тесты: 1
13.10.2013, 20:18     WinExec, запуск batch файла #2
Код
cd /d "%~dp"
copy /y "%cd%\имя файла" "путь\имя файла"
Цитата Сообщение от razor_ua Посмотреть сообщение
Даже msdn пишет, что если файл не был найден, то ищется в файле с программой
Где пишет ? В описании WinExec ? Ну правильно, WinExec ищет в папке с программой.
А команда copy в батнике ищет в текущей папке, если полный путь не указан.
razor_ua
10 / 10 / 0
Регистрация: 20.05.2011
Сообщений: 71
13.10.2013, 20:23  [ТС]     WinExec, запуск batch файла #3
Вы имеете ввиду, что пути к файлу с программой и текущей директорией будет отличаться?

Файлы все вместе лежат.
Убежденный
Системный программист
 Аватар для Убежденный
14209 / 6224 / 987
Регистрация: 02.05.2013
Сообщений: 10,374
Завершенные тесты: 1
13.10.2013, 20:26     WinExec, запуск batch файла #4
В коде выше опечатка, вмеcто
Код
cd /d "%~dp"
нужно писать
Код
cd /d "%~p0"
Цитата Сообщение от razor_ua Посмотреть сообщение
Вы имеете ввиду, что пути к файлу с программой и текущей директорией будет отличаться?
Возможно. Вызовите в программе GetCurrentDirectory и посмотрите, куда она указывает.
razor_ua
10 / 10 / 0
Регистрация: 20.05.2011
Сообщений: 71
13.10.2013, 20:39  [ТС]     WinExec, запуск batch файла #5
GetCurrentDirectory указывает к исполняемому файлу.

С cd /d "%~p0" - заработало. Спасибо большое!
Yandex
Объявления
13.10.2013, 20:39     WinExec, запуск batch файла
Ответ Создать тему
Опции темы

Текущее время: 11:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru