|
|
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Добрый всем день У меня такая проблема - пишу программу для запуска других приложений с всяческими проверками и мониторингами. Такая проблема - мне надо, чтобы после получения настроек из ini запустили все программы одновременно, а они запускаются последовательно. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 04:32:00 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Метод называется RunAppAndWait, что как бы намекает, что мы запускаем приложение и ждем, пока оно завершится. Чтобы не ждать, можно закомментировать вот эту строчку: WaitForSingleObject(PI.hProcess, INFINITE); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 05:47:54 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
JaDiМетод называется RunAppAndWait, что как бы намекает, что мы запускаем приложение и ждем, пока оно завершится. Чтобы не ждать, можно закомментировать вот эту строчку: WaitForSingleObject(PI.hProcess, INFINITE); Ну да только тогда вот эта часть: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. сработает сразу же после старта приложения, а мне нужна информация о её конце,это важно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 06:01:20 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Gallemar, Тогда можно через потоки сделать (запускаем отдельный поток, которые отвечает за внешнее приложение и ждет его завершения). Какая версия делфи? В новых можно использовать встроенную TParallel.For, стороннюю библиотеку OmniThreadLibrary (рекомендую), прямо средствами делфи через TThread . Можно даже без всяких потоков сделать -- обычным циклом с ожиданием (запускаем по списку, сохраняем хендлы процессов hProcess и по очереди проверяем их окончания, записывая результат и ожидая закрытия всех процессов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 08:44:57 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
JaDiGallemar, Какая версия делфи? Классика - №7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 09:22:42 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
GallemarJaDiGallemar, Какая версия делфи? Классика - №7. Как сделал-бы я. :) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. Поток запускается, выполняет задачу и сообщив об окончании самоубивается. П.С. NewString и FreeString обязательны при передаче строк между потоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 09:44:54 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
GallemarJaDiGallemar, Какая версия делфи? Классика - №7. сразу же видно :) Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 09:54:14 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
ДокGallemarпропущено... Классика - №7. сразу же видно :) Эдик, ты не прав, что это седьмая не видно, видно, что версия до D 2006 :) тут и покруче некрофилы есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 10:09:42 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Gallemarчто это седьмая не видно семерка проще и быстрее всего ставится. Остальные известные некрофилы - это дефекатор (Д7) и чччД (Д2007) зы. все-все... больше не оффтоплю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 11:59:21 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
ДокGallemarчто это седьмая не видно семерка проще и быстрее всего ставится. Остальные известные некрофилы - это дефекатор (Д7) и чччД (Д2007) Хвастунов ещё. Сибиряков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 12:19:07 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Gallemar, Меня еще запиши - у меня проект на Д6 еще живой :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 14:03:26 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Да тут и на Д5 попадаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 14:15:03 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
у нас есть пучок проектов на Д5, с 1999 года живут. в своё время руководство поленилось озаботиться переползанием на более свежие версии, а сейчас перетащить это окаменевшее Г и вовсе нереально (в разумные сроки). помимо этого есть проекты на Д7 и 2009. все новые разработки сейчас на Лазаре. аминь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 14:27:47 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
ДокGallemarчто это седьмая не видно семерка проще и быстрее всего ставится. Остальные известные некрофилы - это дефекатор (Д7) и чччД (Д2007) зы. все-все... больше не оффтоплю Я еще на D2006 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 14:29:38 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Заоффтопили :) но я не против. Завтра кину код ,гляньте общим взором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 16:03:44 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
авторвсе новые разработки сейчас на Лазаре. Кроссплатформа или чисто под вынь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 18:46:02 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
WaitForSingleObject заменить на WaitForMultipleObjects ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2017, 15:35:06 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. переписал в таком виде, осталась проблема - неправильно передается tpath2 и одно приложение запускается дважды. Ini такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 10:14:50 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Gallemarнеправильно передается tpath2 Потому что потоки запускаются параллельно основному... Потому и говорил, используй мое решение, там очередь сообщений реализована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 10:40:21 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
wadmanПотому что потоки запускаются параллельно основному... И как быть в таком случае? tpath1 передается без проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 10:47:42 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Gallemartpath1 передается без проблем Как раз с проблемами, т.к. к моменту реального старта 2-го или 3-го потока, там другие значения. Посмотри на мой код: строка передается потоку (копированием), а не остается в основном потоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 11:01:21 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
wadmanПосмотри на мой код: строка передается потоку (копированием), а не остается в основном потоке. Сделал вот так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Вроде работает, но почему то иногда одна программа может не запустится + когда запускаю отладчиком получаю ошибку с одним из запросов,причем то она есть, то её нет https://s8.hostingkartinok.com/uploads/images/2017/07/11ab422a3ddd4b36bbd319a1e9dc20c5.png ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 11:50:30 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
Как я понимаю в этом блоке проблема: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 12:02:21 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
В общем у тебя 2 ошибки: 1. Использование глобальных переменных для параллельно выполняющихся потоков. 2. Как п.1, только теперь относительно еще и компонент фибов. Как исправить: 1. У каждого потока прикрути свой конструктор, в который и загоняй нужные переменные и нигде кроме потока с ними не работай. 2. В каждом потоке создавай свои запросы, а еще лучше и сами соединения. Грубо говоря, из потока никаких обращений к формам и к тому, что на них лежит быть не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 12:41:51 |
|
||
|
Запуск программ
|
|||
|---|---|---|---|
|
#18+
wadmanКак исправить: 1. У каждого потока прикрути свой конструктор, в который и загоняй нужные переменные и нигде кроме потока с ними не работай. 2. В каждом потоке создавай свои запросы, а еще лучше и сами соединения. Грубо говоря, из потока никаких обращений к формам и к тому, что на них лежит быть не должно. 1. Можешь примером кинуть? 2. Это как? Отдельный контейнер для фибов? Или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 12:44:38 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39490543&tid=2041991]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 464ms |

| 0 / 0 |
