Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.05.2013, 18:49
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
Вопрос Запуск Java с параметрами

Здравствуйте! Мне нужно запустить java с параметрами. У меня есть 2 варианта как это сделать:
Код:
ShellExecute(0, 'open', 'cmd.exe', PWideChar('/c javaw ' + Launch), nil, SW_SHOW);
ShellExecute(0, 'open', 'javaw.exe', PWideChar(Launch), nil, CW_SHOW);
В первом случае запускается окно cmd где написано C:\ПУТЬ_К_ПРОГРАММЕ\ и всё, а во втором случае ничего не происходит. Работающий батник с тем же кодом:
Код:
start javaw -Xms512m -Xmx2048m -Djava.library.path="C:\Users\serega6531\AppData\Roaming\.happyminers\bin\natives" -cp "C:\Users\serega6531\AppData\Roaming\.happyminers\bin\minecraft.jar;C:\Users\serega6531\AppData\Roaming\.happyminers\bin\
lwjgl.jar;C:\Users\serega6531\AppData\Roaming\.happyminers\bin\lwjgl_util.jar;C:\Users\serega6531\AppData\Roaming\.happyminers\bin\jinput.jar;" net.minecraft.client.Minecraft USERNAME
Если можете, дайте готовый код или просто исправьте ошибку.
Ответить с цитированием
  #2  
Старый 19.05.2013, 19:17
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
WinExec('java -jar "d:\Developer\Java\jdcd.jar"', SW_SHOW);
проверил, работает.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 19.05.2013, 19:36
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
Печаль

Цитата:
Сообщение от NumLock
Код:
WinExec('java -jar "d:\Developer\Java\jdcd.jar"', SW_SHOW);
проверил, работает.
Код:
WinExec(PAnsiChar(AnsiString('javaw' + Launch)), SW_SHOW);
не работает.
Launch =
Код:
Launch := ' -Xms' + MinMem +
            ' -Xmx' + MaxMem +
            ' -Djava.library.path="'+appdata + '\' + RootDir + '\bin\natives"' +        
            ' -cp "'+ GameFiles +'"' +
            ' net.minecraft.client.Minecraft '+ Login;                                         {+ логин}
т.е
Код:
-Xms512m -Xmx2048m -Djava.library.path="C:\Users\serega6531\AppData\Roaming\.happyminers\bin\natives"
 -cp "C:\Users\serega6531\AppData\Roaming\.happyminers\bin\minecraft.jar;C:\Users\serega6531\AppData\Roaming\.happyminers\bin\
lwjgl.jar;C:\Users\serega6531\AppData\Roaming\.happyminers\bin\lwjgl_util.jar;
C:\Users\serega6531\AppData\Roaming\.happyminers\bin\jinput.jar;" net.minecraft.client.Minecraft USERNAME

Ну что? Кто нибудь поможет?

Ау! Где все?

Последний раз редактировалось M.A.D.M.A.N., 24.05.2013 в 13:06.
Ответить с цитированием
  #4  
Старый 22.05.2013, 21:57
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

За такие закидоны можно и банку схлопотать.

Во первых, отредактируйте свой код, расставьте переносы, экран хоть и широкий но не до такой же степени, приходится листать, что не есть хорошо.

Во вторых, NumLock уже предложил вариант (рабочий, он проверил!), а то что вы не смогли его правильно использовать, догадайтесь, кто в этом виноват?
Ответить с цитированием
  #5  
Старый 22.05.2013, 22:33
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
По умолчанию Нет

Цитата:
Сообщение от Alegun
За такие закидоны можно и банку схлопотать.

Во первых, отредактируйте свой код, расставьте переносы, экран хоть и широкий но не до такой же степени, приходится листать, что не есть хорошо.

Во вторых, NumLock уже предложил вариант (рабочий, он проверил!), а то что вы не смогли его правильно использовать, догадайтесь, кто в этом виноват?
1. Я расставил. Видимо у вас экран меньше чем у меня.
2.И как же это перевести в javaw?
Код:
WinExec(PAnsiChar(AnsiString('javaw' + Launch)), SW_SHOW);
как я уже сказал, не работает.
Код:
  WinExec(PAnsiChar('javaw' + Launch), SW_SHOW);
тоже.
Ответить с цитированием
  #6  
Старый 22.05.2013, 22:54
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп:
Цитата:
Я расставил...
На экране ноутбука выглядит ужасно, потому как предел формы это надписи "Список друзей Выход", а строки убегают больше чем на половину. Исправьте, пжлст.

По теме:
Цитата:
...Работающий батник...
А чем батник не устраивает?

Начните с малого, не пытайтесь всё сразу запихнуть в WinExec, например просто попробуйте запустите javaw.exe и в диспетчере задач (поскольку "оконный" интерпретатор появляется без окна) посмотрите запустился ли. Как он там появится (подозреваю что с путями неразбериха), тогда можно к следующему шагу переходить.

З.Ы.
А файл jinput.jar сам на выполнение разве не запускается вместе со "свитой"?
Ответить с цитированием
  #7  
Старый 23.05.2013, 14:47
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
Радость А может так?

Цитата:
Оффтоп:
На экране ноутбука выглядит ужасно, потому как предел формы это надписи "Список друзей Выход", а строки убегают больше чем на половину. Исправьте, пжлст.
Исправил.

Цитата:
По теме:
А чем батник не устраивает?
Ну, нужно запихнуть его в программу + надо при запуске передавать номер сессии т.е jawaw ... 384921853:fj5bs6jnb537fns8k2:USERNAME

Цитата:
Начните с малого, не пытайтесь всё сразу запихнуть в WinExec, например просто попробуйте запустите javaw.exe и в диспетчере задач (поскольку "оконный" интерпретатор появляется без окна) посмотрите запустился ли. Как он там появится (подозреваю что с путями неразбериха), тогда можно к следующему шагу переходить.
А может так попробовать:
Код:
WinExec('java -jar + ПутьДоИгры + Launch', SW_SHOW);
?
Ответить с цитированием
  #8  
Старый 23.05.2013, 15:25
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

CreateProcess. Подробности в гугле и тут в поиске валом.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 23.05.2013, 16:28
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
Печаль Я нуб

Цитата:
Сообщение от M.A.D.M.A.N.
CreateProcess. Подробности в гугле и тут в поиске валом.
Не совсем понял как его использовать. Какие передавать параметры? Гугл не помог.
Ответить с цитированием
  #10  
Старый 23.05.2013, 17:39
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Вы не нуб, вы лентяй.
Код:
//==============================================================================
function RunMyAppHidden(my_app : string; my_wait : bool) : bool; // по идее можно в процедуру переписать
  var
    si : TStartupInfo;
    pi : TProcessInformation;
  begin
    Result := false;
    try
      ZeroMemory(@si,SizeOf(si));
      si.cb := SizeOf(si);
      si.dwFlags := STARTF_USESHOWWINDOW;
      si.wShowWindow := SW_SHOWNORMAL;  // <--- обрати внимание на этот флаг
      if CreateProcess(nil,PChar(my_app),nil,nil,False,0,nil,nil,si,pi)=true then Result := true;
      try CloseHandle(pi.hThread); except ; end;
      if my_wait = true then WaitForSingleObject(pi.hProcess, INFINITE);
      try CloseHandle(pi.hProcess); except ; end;
    except
      Result := false;;
    end;
  end;
//==============================================================================
http://www.sql.ru/forum/273134/zapus...-createprocess
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #11  
Старый 23.05.2013, 17:53
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
По умолчанию Я это видел

Цитата:
Сообщение от M.A.D.M.A.N.
Вы не нуб, вы лентяй.
Код:
//==============================================================================
function RunMyAppHidden(my_app : string; my_wait : bool) : bool; // по идее можно в процедуру переписать
  var
    si : TStartupInfo;
    pi : TProcessInformation;
  begin
    Result := false;
    try
      ZeroMemory(@si,SizeOf(si));
      si.cb := SizeOf(si);
      si.dwFlags := STARTF_USESHOWWINDOW;
      si.wShowWindow := SW_SHOWNORMAL;  // <--- обрати внимание на этот флаг
      if CreateProcess(nil,PChar(my_app),nil,nil,False,0,nil,nil,si,pi)=true then Result := true;
      try CloseHandle(pi.hThread); except ; end;
      if my_wait = true then WaitForSingleObject(pi.hProcess, INFINITE);
      try CloseHandle(pi.hProcess); except ; end;
    except
      Result := false;;
    end;
  end;
//==============================================================================
http://www.sql.ru/forum/273134/zapus...-createprocess
Я видел это, но не нашел просто какие передавать параметры. И как передать туда параметры для запуска. И что вы думаете про это:
Код:
WinExec('java -jar + ПутьДоИгры + Launch', SW_SHOW);
Ответить с цитированием
  #12  
Старый 23.05.2013, 20:45
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от serega6531
И что вы думаете про это:
То же самое, что и про макароны с соусом.

Чем тебе с CreateProcess не устроило?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #13  
Старый 23.05.2013, 20:51
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.

Чем тебе с CreateProcess не устроило?
Не знаю какие передавать параметры и как запустить с нужными данными.
Ответить с цитированием
  #14  
Старый 23.05.2013, 21:01
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
BOOL WINAPI CreateProcess(
  _In_opt_     LPCTSTR lpApplicationName,
  _Inout_opt_  LPTSTR lpCommandLine, // командная строка
  _In_opt_     LPSECURITY_ATTRIBUTES lpProcessAttributes,
  _In_opt_     LPSECURITY_ATTRIBUTES lpThreadAttributes,
  _In_         BOOL bInheritHandles,
  _In_         DWORD dwCreationFlags,
  _In_opt_     LPVOID lpEnvironment,
  _In_opt_     LPCTSTR lpCurrentDirectory, // рабочая папка
  _In_         LPSTARTUPINFO lpStartupInfo,
  _Out_        LPPROCESS_INFORMATION lpProcessInformation
);

"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "X:\minecraft[p] 1.5.1\.minecraft\loader.jar"
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 23.05.2013 в 21:06.
Ответить с цитированием
  #15  
Старый 23.05.2013, 21:15
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
Радость

Цитата:
Сообщение от M.A.D.M.A.N.
Код:
BOOL WINAPI CreateProcess(
  _In_opt_     LPCTSTR lpApplicationName,
  _Inout_opt_  LPTSTR lpCommandLine, // командная строка
  _In_opt_     LPSECURITY_ATTRIBUTES lpProcessAttributes,
  _In_opt_     LPSECURITY_ATTRIBUTES lpThreadAttributes,
  _In_         BOOL bInheritHandles,
  _In_         DWORD dwCreationFlags,
  _In_opt_     LPVOID lpEnvironment,
  _In_opt_     LPCTSTR lpCurrentDirectory, // рабочая папка
  _In_         LPSTARTUPINFO lpStartupInfo,
  _Out_        LPPROCESS_INFORMATION lpProcessInformation
);

"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "X:\minecraft[p] 1.5.1\.minecraft\loader.jar"
Может быть я слишком многого прошу, но дайте пожалуйста рабочий код на CreateProcess
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter