Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
MelKiY
-121 / 2 / 1
Регистрация: 20.09.2009
Сообщений: 101
#1

ShellExecute WinExec .... - C++

08.03.2011, 05:41. Просмотров 3389. Ответов 8
Метки нет (Все метки)

Привет всем )

у меня появилать очень интересная проблема с WinExec и ShellExecute

Вот я запукаю с помощю программы bat файл который находется в соседей папке
этот bat файл должен запускать hlds.exe (CS 1.6 Server) в консольном режиме.

проблема в том что всё время пишет hlds.exe не является внешней или внутренней программой...

я уже пробавал и так и сяк ничего не работает

C++
1
2
3
4
5
ShellExecute(Handle,"open","melkiy\\Server\\Server.bat",0,0,SW_SHOWNORMAL);
ShellExecute(Handle,"open",".\\melkiy\\Server\\Server.bat",0,0,SW_SHOWNORMAL);
system("melkiy\\Server\\Server.bat");
WinExec("\\melkiy\\Server\\Server.bat",SW_SHOWNORMAL);
WinExec("melkiy\\Server\\Server.bat",SW_SHOWNORMAL);
C++
1
2
3
ShellExecute(Handle,"open","C:\\Users\\Desktop\\ME\\melkiy\\Server\\Server.bat",0,0,SW_SHOWNORMAL);
system("C:\\Users\\Desktop\\ME\\melkiy\\Server\\Server.bat");
WinExec("C:\\Users\\Desktop\\ME\\melkiy\\Server\\Server.bat",SW_SHOWNORMAL);
всё время везде одно и тоже :/

я пытался запустить программно сам HLDS.exe И НИ**** (ОшИбКа) :/

pliz прошу помощи ( Win 7 x86 / C++ Builder 6 )

Добавлено через 54 минуты
файл может запуститься только тогда когда моя программа лежит в тойже папке что и запускаемый файл
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2011, 05:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ShellExecute WinExec .... (C++):

Ошибка параметров в функции WinExec - C++
char *buffer = new char; GetCurrentDirectoryA(MAX_PATH, buffer); //remove(buffer); //deletebuffer; //buffer = new char; ...

Не работает открытие приложений WinExec - C++
Делаю прогу в visual studio 2015 на С++, должна при нажатии "1" открыть браузер (Вот его путь "C:\Program Files...

WinExec, запуск batch файла - C++
Все привет. Делаю так: WinExec("Register.bat", SW_SHOW); результат 33, т.е. больше чем 31 => все ок. содержимое bat файла ...

Как узнать адрес функции Winexec - C++
Пробовал через IDA, вроде нашел, но не сработал Через Ollydbg не могу найти

ShellExecute - конфликтация типов - C++
Разрешите вопрос о конфликтации типов при открытии папки. ShellExecute(0, "explore", sName, NULL, NULL, SW_SHOWNORMAL); где в sName...

ShellExecute не находит программу в своей же папке - C++
Пытаюсь сделать программу, которая будет висеть в службах и будет запускать нужные программы. Вот код для этой программы, сейчас запускаю...

8
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
08.03.2011, 06:12 #2
этот bat файл должен запускать hlds.exe
проблема в том что всё время пишет hlds.exe не является внешней или внутренней программой
У вас проблема в файле Server.bat, а вы тут зачем то вы тут код C++ показываете
0
MelKiY
-121 / 2 / 1
Регистрация: 20.09.2009
Сообщений: 101
08.03.2011, 16:31  [ТС] #3
Цитата Сообщение от bigredcat Посмотреть сообщение
этот bat файл должен запускать hlds.exe
проблема в том что всё время пишет hlds.exe не является внешней или внутренней программой
У вас проблема в файле Server.bat, а вы тут зачем то вы тут код C++ показываете
я же говарю что проблема в том что BAT файл не запускается правильно ЕСЛИ програма моя не лежит рядом в тойже ПАПКЕ!
я показал код для того что бы его исправили! если что - то не то!

у меня был подобный случай с LUA сервером,Server.EXE лежит в C:\Windows\System32 рядом с ним лежит Main.lua, Server.exe должен прочитать Main.lua НО! если я запускаю своей програмой которая лежит на рабочьем столе Server.exe, через ShellExecute и WinExec то появляется ошибка что Main.lua НЕ НАЙДЕН! тем самым я создаю Main.lua рядом со своей программой Main.lua (НА РОБОЧЬЕМ СТОЛЕ) И ВСЁ OK

ТАК КАКОГО Server.exe что лежит в C:\Windows\System32 не загружает Main.lua который в C:\Windows\System32 (Точно тамже) а загружает Main.lua который лежит рядом с моей програмой ?????

а вы тут зачем то вы тут код C++ показываете
-____-

вот мой batник

Код
hlds.exe -console +sv_lan 0 -insecure -game cstrike -master +maxplayers 32 -port 27099 +map de_dust2 +port 27015 +ip 127.0.0.1 +exec listip.cfg
файл может запуститься только тогда когда моя программа лежит в тойже папке что и запускаемый файл
Добавлено через 12 минут
Спасибо

Добавлено через 5 минут
а вы тут зачем то вы тут код C++ показываете
0
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
08.03.2011, 17:04 #4
Цитата Сообщение от MelKiY Посмотреть сообщение
у меня появилать очень интересная проблема с WinExec и ShellExecute

Вот я запукаю с помощю программы bat файл который находется в соседей папке
этот bat файл должен запускать hlds.exe (CS 1.6 Server) в консольном режиме.

проблема в том что всё время пишет hlds.exe не является внешней или внутренней программой...
А теперь прочитай, что ты написал. Найди, где здесь указания на проблему с WinExec и ShellExecute?

Из твоего же описания следует:
Программа запускает Server.bat.
Пакетный файл запускает исполнимый файл hlds.exe.
Проблема в том что всё время пишет hlds.exe.

Значит, твоя программа находит и запускает пакетный файл Server.bat.
А вот уже твой пакетный файл Server.bat не запускает hlds.exe и ты даже получаешь сообщение почему: "... не является внешней или внутренней ...". Такое сообщение бывает, в том числе, когда невозможно найти файл с указанным именем. И если с самим файлом hlds.exe все нормально, то явно ошибка с путями в твоем пакетном файле Server.bat
0
MelKiY
-121 / 2 / 1
Регистрация: 20.09.2009
Сообщений: 101
08.03.2011, 17:22  [ТС] #5
Вот я запукаю с помощю программы (- ПРОГА С КОДМ )bat файл который находется в соседей папке
этот bat файл должен запускать hlds.exe (CS 1.6 Server) в консольном режиме.


я пытался запустить программно сам HLDS.exe И НИ**** (ОшИбКа) :/

файл может запуститься только тогда когда моя программа лежит в тойже папке что и запускаемый файл

Так если я запускаю batник в ручную то всё OK (значит всётаки проблема не с BATником)

я уже пробавал и так и сяк ничего не работает

я пытался запустить программно сам HLDS.exe И НИ**** (ОшИбКа) :/

Запуск у ручную и всё OK! -___________- - это моё лицо


Неужели никто не сталкивался с такой проблемой -___________________________-



ну если BAT лежит рядом с HLDS.exe то как он его может не найти ???

hlds.exe -console +sv_lan 0 -insecure -game cstrike -master +maxplayers 32 -port 27099 +map de_dust2 +port 27015 +ip 127.0.0.1 +exec listip.cfg
C:\Users\Desktop\ME\melkiy\Server\hlds.exe -console +sv_lan 0 -insecure -game cstrike -master +maxplayers 32 -port 27099 +map de_dust2 +port 27015 +ip 127.0.0.1 +exec listip.cfg

 Комментарий модератора 
Не кричите, не в лесу.
0
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,847
08.03.2011, 17:51 #6
MelKiY, попробуйте в bat файле первой строчкой
Код
path=C:\Users\Desktop\ME\melkiy\Server\
0
MelKiY
-121 / 2 / 1
Регистрация: 20.09.2009
Сообщений: 101
08.03.2011, 17:57  [ТС] #7
Я РАЗОБРАЛСЯ!

C++
1
ShellExecute( Handle,"open","Server.bat",0,"C:\\Users\\Desktop\\ME\\melkiy\\Server\\",SW_SHOWNORMAL );

где hlds.exe - имя файла
где C:\\Users\\Desktop\\ME\\melkiy\\Server\\- директория файла

Спасибо easybudda за нормальный ответ )

PS bigredcat вот для этого я и писал C++ код
0
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
08.03.2011, 18:35 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от MelKiY Посмотреть сообщение
Спасибо easybudda за нормальный ответ )
PS bigredcat вот для этого я и писал C++ код
Да, но править вам указали все-таки пакетный файл и как раз таки путь. Из первого поста не видно содержимого bat файла, а я не телепат.
Но по большому счету не в этом дело. Вы уже больше года с аналогичными вопросами разбираетесь. Стоит задуматься
0
MelKiY
-121 / 2 / 1
Регистрация: 20.09.2009
Сообщений: 101
09.03.2011, 21:09  [ТС] #9
Bigredcat примите мои извинения


Спасибо
0
09.03.2011, 21:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2011, 21:09
Привет! Вот еще темы с ответами:

Как передать параметры через ShellExecute - C++ - C++
Приветствую Как передать строку и число через ShellExecute? SHELLEXECUTEINFO ShExecInfo = { 0 }; ShExecInfo.cbSize =...

ShellExecute не стартует процесс с длинной командой - C++
Столкнулся с такой проблемой. Есть у нас Windows Service, который стартует процесс в любой сессии через LaunchProcessAsUser. Этот процесс...

Подскажите с вводом переменной в строку ShellExecute!!!Please!!! - C++
Как мне в данной строчке присвоить значение Si.doc какой-то переменной? ShellExecute(NULL, "open", "Si.doc", NULL, NULL, SW_SHOWNORMAL); ...

ShellExecute не выполняет консольное приложение на языке С - C++
Не корректно выполняется функцией ShellExecute exe'шник консольного приложения написанного на С. Оконное приложение могу запустить и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru