• 0
brunnengi

Запуск приложения из текущего

Вопросы

Здравствуйте.

Надо запустить приложение из моего.
Но никак не выходит. Не могу понять, то ли дело в самом Fire Monkey, то ли Win10 такой "крепкий".
Может у кого есть действенный код запуска exe файла который лежит в той же папки что и запущенная программа на FMX?
Подсобите пожалуйста, а то уже с восьми вечера эксперементами занимаюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 ответа на этот вопрос

  • 0

Мдя... Win api реально крепкий орешек. WinExec будет молчать до последнего. Это факт. ShellExecute что-то проронит, но увидев зомби-фразу fmx - сдуется. Так что останется только кошерный CreateProcess. И ничего с этим не поделать. Хотя он имеет весьма не большое отношение к форумтагу...
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
procedure RunProgram(cmdStr:string; Wait:Boolean; ShowWindow:Word);
var si:TStartupInfo;
  pi:TProcessInformation;
  s:string;
begin
  FillChar(si, SizeOf(si), 0);
  si.cb := SizeOf(si);
  si.dwFlags:=STARTF_USESHOWWINDOW;
  si.wShowWindow := ShowWindow;
  s:=cmdStr;
  UniqueString(s);
  getlasterror;
  if not CreateProcess(nil, PChar(S), NIL, NIL, False, 0, NIL, NIL, si, pi) then
    showMessageFmt('Ошибка %d. %s',[getlasterror,SysErrorMessage(getlasterror)]);

  if wait then
    WaitForSingleObject(pi.hProcess, INFINITE);
  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
end;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 18.11.2017 в 09:36, krapotkin сказал:

CreateProcess

Это работает только под win? Или в андроиде тоже сработает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
2 часа назад, valdemar сказал:

Это работает только под win? Или в андроиде тоже сработает?

CreateProcess, StartupInfo, ProcessInformation, WaitForSingleObject, CloseHandle объявлены в  WinAPI. У других операционных систем методы запуска другие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу