Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2009, 14:14   #1
Dryg2009
Заблокирован
 
Регистрация: 10.04.2009
Сообщений: 33
По умолчанию Запуск исполняемых файлов из программы

Всем привет!

У меня есть некая программа что-то типа java games-server!! чтобы ее запустить нужно запустить 2 batника gameserver.bat и loginserver.bat
код gameserver.bat
Код:
@echo off
title Game Server Console
:start
echo Starting L2J Game Server.
echo.
REM -------------------------------------
REM Default parameters for a basic server.
java -Xmx1024m -cp ./../libs/*;l2jserver.jar net.sf.l2j.gameserver.GameServer
REM
REM If you have a big server and lots of memory, you could experiment for example with
REM java -server -Xmx1536m -Xms1024m -Xmn512m -XX:PermSize=256m -XX:SurvivorRatio=8 -Xnoclassgc -XX:+AggressiveOpts
REM If you are having troubles on server shutdown (saving data),
REM add this to startup paramethers: -Djava.util.logging.manager=net.sf.l2j.L2LogManager. Example:
REM java -Djava.util.logging.manager=net.sf.l2j.util.L2LogManager -Xmx1024m -cp ./../libs/*;l2jserver.jar net.sf.l2j.gameserver.GameServer
REM -------------------------------------
if ERRORLEVEL 2 goto restart
if ERRORLEVEL 1 goto error
goto end
:restart
echo.
echo Admin Restart ...
echo.
goto start
:error
echo.
echo Server terminated abnormaly
echo.
:end
echo.
echo server terminated
echo.
pause
вот код loginserver.bat

Код:
@echo off
title Login Server Console
:start
echo Starting L2J Login Server.
echo.
java -Xmx128m  -cp ./../libs/*;l2jserver.jar net.sf.l2j.loginserver.L2LoginServer
if ERRORLEVEL 2 goto restart
if ERRORLEVEL 1 goto error
goto end
:restart
echo.
echo Admin Restart ...
echo.
goto start
:error
echo.
echo Server terminated abnormaly
echo.
:end
echo.
echo server terminated
echo.
pause
так вот мне надоело это фигня!!
хочу создать exe файл чтобы эти батники запускались из него!! какбы создать консоль в нутри программы с помощью RichEdit1 !!

так чет я сам написал и ничего не понял!!

смотри рис!!
Изображения
Тип файла: jpg panel.jpg (32.9 Кб, 146 просмотров)
Dryg2009 вне форума Ответить с цитированием
Старый 12.04.2009, 20:04   #2
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

сделай батник например execute.bat
Код:
start /wait /b "gameserver.bat"
start /wait /b "loginserver.bat"
и кинь его в папку с этими бат-файлами
Роман Радер вне форума Ответить с цитированием
Старый 12.04.2009, 21:14   #3
Dryg2009
Заблокирован
 
Регистрация: 10.04.2009
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Роман Радер Посмотреть сообщение
сделай батник например execute.bat
Код:
start /wait /b "gameserver.bat"
start /wait /b "loginserver.bat"
и кинь его в папку с этими бат-файлами

эти батники лежат в разных дериктория!! и так не работает кстате!!
Dryg2009 вне форума Ответить с цитированием
Старый 12.04.2009, 22:19   #4
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

как я понял нужно просто создать еxe, который запускал бы два файла,
значит можно использовать ShellAPi (обязательно прописать в uses)
Код:
shellExecute(handle,nil,ExtractFilePath(Application.ExeName)+'\'+ 'gameserver.bat',nil,nil,SW_RESTORE);
 shellExecute(handle,nil,ExtractFilePath(Application.ExeName)+'\'+ 'loginserver.bat',nil,nil,SW_RESTORE);
Потом размещаешь в ту директорию, где твоя программа и запускаешь
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 13.04.2009, 07:46   #5
Dryg2009
Заблокирован
 
Регистрация: 10.04.2009
Сообщений: 33
По умолчанию

Цитата:
Сообщение от ArtInt Посмотреть сообщение
как я понял нужно просто создать еxe, который запускал бы два файла,
значит можно использовать ShellAPi (обязательно прописать в uses)
Код:
shellExecute(handle,nil,ExtractFilePath(Application.ExeName)+'\'+ 'gameserver.bat',nil,nil,SW_RESTORE);
 shellExecute(handle,nil,ExtractFilePath(Application.ExeName)+'\'+ 'loginserver.bat',nil,nil,SW_RESTORE);
Потом размещаешь в ту директорию, где твоя программа и запускаешь
Спасибо вроде работает!!

Другой вопросик!!

как сделать чтобы программа настройки брала ну например из файла settings.ini а в самом файле бал прописан путь к батникам был
Код:
[main_0]
pyt = D:\l2j-server\gameserver\gameserver.bat

[main_1]
pyt2 = D:\l2j-server\login\loginserver.bat

Последний раз редактировалось Dryg2009; 13.04.2009 в 07:52.
Dryg2009 вне форума Ответить с цитированием
Старый 15.04.2009, 00:54   #6
Dryg2009
Заблокирован
 
Регистрация: 10.04.2009
Сообщений: 33
По умолчанию

помогите с проблемой!!

Код:
procedure TForm1.sBitBtn1Click(Sender: TObject);
var Path1,Path2,Path3,Path4: string;
MyFile:TIniFile;
begin
MyFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'\'+ 'lin.ini');
 Path1:= MyFile.ReadString('gameserver','Path1','');
 Path2:= MyFile.ReadString('gameserver','Path2','');
 Path3:= MyFile.ReadString('loginserver','Path3','');
 Path4:= MyFile.ReadString('loginserver','Path4','');
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar('Path1'), nil, Pchar('Path2'),SW_SHOWMINIMIZED);
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar('Path3'), nil, Pchar('Path4'),SW_SHOWMINIMIZED);
end;
в ini файле написано вот это

Код:
[gameserver]
path1=startGameServer.bat
path2=D:\server\gameserver
[loginserver]
path3=startLoginServer.bat
path4=D:\server\login
Суть такая!! ошибок ни каких не выдает но при нажатии на sBitBtn1 батники не запускается!!

а если например написать
Код:
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar('startGameServer.bat'), nil, Pchar('D:\server\gameserver'),SW_SHOWMINIMIZED);
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar('startLoginServer.bat'), nil, Pchar('D:\server\login'),SW_SHOWMINIMIZED);
ТО ВСЕ РАБОТАЕТ ДАЖЕ ОЧЕНЬ ХОРОШО!!


проверял через

Код:
sEdit1.Text:=MyFile.ReadString('gameserver','Path1','');
sEdit3.Text:=MyFile.ReadString('gameserver','Path2','');
sEdit все заполняются из ini файла

что я не так написал ?
Dryg2009 вне форума Ответить с цитированием
Старый 15.04.2009, 02:31   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure TForm1.sBitBtn1Click(Sender: TObject);
var Path1,Path2,Path3,Path4: string;
MyFile:TIniFile;
begin
MyFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'\'+ 'lin.ini');
 Path1:= MyFile.ReadString('gameserver','Path1','');
 Path2:= MyFile.ReadString('gameserver','Path2','');
 Path3:= MyFile.ReadString('loginserver','Path3','');
 Path4:= MyFile.ReadString('loginserver','Path4','');
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar(Path1), nil, Pchar(Path2),SW_SHOWMINIMIZED);
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar(Path3), nil, Pchar(Path4),SW_SHOWMINIMIZED);
end;
ты написал не переменную а строку
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.04.2009, 07:50   #8
Dryg2009
Заблокирован
 
Регистрация: 10.04.2009
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
procedure TForm1.sBitBtn1Click(Sender: TObject);
var Path1,Path2,Path3,Path4: string;
MyFile:TIniFile;
begin
MyFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'\'+ 'lin.ini');
 Path1:= MyFile.ReadString('gameserver','Path1','');
 Path2:= MyFile.ReadString('gameserver','Path2','');
 Path3:= MyFile.ReadString('loginserver','Path3','');
 Path4:= MyFile.ReadString('loginserver','Path4','');
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar(Path1), nil, Pchar(Path2),SW_SHOWMINIMIZED);
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar(Path3), nil, Pchar(Path4),SW_SHOWMINIMIZED);
end;
ты написал не переменную а строку

Спасибо!! чет я ступил!!
Dryg2009 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск файлов по расписанию Roll1n Софт 6 22.01.2009 20:45
Запуск файлов workres Win Api 3 02.07.2008 21:56
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33
Запуск файлов программы d_slava Помощь студентам 2 17.06.2008 11:22
сжатие исполняемых файлов SuperVisor Софт 8 26.03.2007 21:40