Показать сообщение отдельно
  #5  
Старый 03.06.2013, 19:38
serega6531 serega6531 вне форума
Начинающий
 
Регистрация: 03.03.2013
Сообщения: 106
Версия Delphi: Delphi 7, XE5
Репутация: 10
По умолчанию Да

Цитата:
Сообщение от M.A.D.M.A.N.
Все темы в разделе " [ "Начинающим" ] "))

Ты так и не осилил ShellExecute/CreateProcess? Вон тот лайнчер через Cerateprocess как раз запускает.

Вот стек при вызове ф-ии:
Код:
00287C90   00000000  |ModuleFileName = NULL
00287C94   00287CD0  |CommandLine = ""C:\Program Files\Java\jre7\bin\javaw.exe" -Xms512m -Xmx1024m -jar "C:\Users\***\Desktop\Minecraft.exe""
00287C98   00000000  |pProcessSecurity = NULL
00287C9C   00000000  |pThreadSecurity = NULL
00287CA0   00000001  |InheritHandles = TRUE
00287CA4   00000020  |CreationFlags = NORMAL_PRIORITY_CLASS
00287CA8   00000000  |pEnvironment = NULL
00287CAC   00000000  |CurrentDir = NULL
00287CB0   0028FCD0  |pStartupInfo = 0028FCD0
00287CB4   00410C80  \pProcessInfo = Minecraf.00410C80

Или пипец все плохо и надо объяснять на пальцах?
Да, если можно. Я так понял надо эти данные запихнуть в функцию:
Цитата:
Сообщение от 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;
И пожалуйста, ругайтесь не очень сильно. Это же раздел для начинающих.
Ответить с цитированием