Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
MelKiY
1 / 2 / 2
Регистрация: 20.09.2009
Сообщений: 101
#1

ShellExecute WinExec .... - C++

08.03.2011, 05:41. Просмотров 3525. Ответов 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
char *buffer = new char; GetCurrentDirectoryA(MAX_PATH, buffer); ...

WinExec, запуск batch файла
Все привет. Делаю так: WinExec("Register.bat", SW_SHOW); результат 33,...

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

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

ShellExecute - конфликтация типов
Разрешите вопрос о конфликтации типов при открытии папки. ShellExecute(0,...

[Shellexecute] перейти в папку с игрой
На делфи все гораздо проще,для апдейта программы я юзаю чтото типа такого ...

8
bigredcat
369 / 316 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
08.03.2011, 06:12 #2
этот bat файл должен запускать hlds.exe
проблема в том что всё время пишет hlds.exe не является внешней или внутренней программой
У вас проблема в файле Server.bat, а вы тут зачем то вы тут код C++ показываете
0
MelKiY
1 / 2 / 2
Регистрация: 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
369 / 316 / 32
Регистрация: 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
1 / 2 / 2
Регистрация: 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Эксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
08.03.2011, 17:51 #6
MelKiY, попробуйте в bat файле первой строчкой
Код
path=C:\Users\Desktop\ME\melkiy\Server\
0
MelKiY
1 / 2 / 2
Регистрация: 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
369 / 316 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
08.03.2011, 18:35 #8
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от MelKiY Посмотреть сообщение
Спасибо easybudda за нормальный ответ )
PS bigredcat вот для этого я и писал C++ код
Да, но править вам указали все-таки пакетный файл и как раз таки путь. Из первого поста не видно содержимого bat файла, а я не телепат.
Но по большому счету не в этом дело. Вы уже больше года с аналогичными вопросами разбираетесь. Стоит задуматься
0
MelKiY
1 / 2 / 2
Регистрация: 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 не выполняет консольное приложение на языке С
Не корректно выполняется функцией ShellExecute exe'шник консольного приложения...

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

ShellExecute не стартует процесс с длинной командой
Столкнулся с такой проблемой. Есть у нас Windows Service, который стартует...

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


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

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

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