Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634

Запустить внешюю программу и дождаться ее завершения

24.01.2015, 16:52. Показов 2240. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Испольщую код:


Visual Basic
1
2
3
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwAccess As Long, ByVal fInherit As Integer, ByVal hObject As Long) As Long
Private Const INFINITE = &HFFFF
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Sub WaitForProcessToEnd(cmdLine As String)
  ' Запускает процесс через Shell и ждет его завершения.
  '[cmdLine]     - коммандная строка, может включать имя файла, параметры, ключи
  '[windowstyle] - стиль запускаемого окна: свернутое, развернутое и т.д
  '[msWait]      - макс. время ожидания
  ' вместо конст.INFINITE можно указать время в миллисек.
  
  Dim retVal As Long, pID As Long, pHandle, msWait As Long
  msWait = 1000000000#
   
  pID = Shell(cmdLine)
  pHandle = OpenProcess(&H100000, True, pID)
  retVal = WaitForSingleObject(pHandle, msWait)
    
End Sub
Все замечательно работает, только когда выполняется внешняя программа. создается ощущение что форма основного приложения висит. Юзера нервничают. Как то можно исправить данное?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.01.2015, 16:52
Ответы с готовыми решениями:

Запустить внешнюю программу и дождаться ее завершения
Доброго времени суток. Я новичек в программировании и тем более в C#. Очень нужна помощь. Форма с кнопками, textbox, chekedlistbox....

Правильно создать пул потоков, запустить эти потоки одновременно и дождаться их завершения
Добрый день! Подскажите пожалуйста, как правильно создать пул потоков, запустить эти потоки одновременно и дождаться завершения всех...

Запустить стороннюю программу и дождаться окончания ее работы
Здравствуйте! Скажите как из формы запустить exe файл, форму скрыть и когда закроется этот exe файл форму вернуть обратно?

3
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
24.01.2015, 18:58
Подумай, для чего msWait?
https://www.cyberforum.ru/blog... g2686.html
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.01.2015, 19:27
Лучший ответ Сообщение было отмечено kreotodr как решение

Решение

Visual Basic
1
2
3
do while WaitForSingleObject(pHandle, 500&) = &H102
  doevents
loop
1
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
25.01.2015, 06:29  [ТС]
кул.спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2015, 06:29
Помогаю со студенческими работами здесь

Дождаться завершения загрузки
На странице есть видеофон <video id="video_bg" autoplay="autoplay" loop="loop"> <source src="video/1.mp4"...

Дождаться завершения метода
Доброго времени суток! Проблема следующая. Имеется скоростная камера, которая включается следующим образом cameraStarted =...

Дождаться завершения потока
Как заставить это дожидаться завершения потока перед тем как продолжить? for ((i = 0); i < qwe; i++) { url = "blablabla; ...

Запустить программу и ждать завершения, не вешая основной программы
Мне нужно запустить программу и дождаться её завершение, после продолжить работу Вот что я нашел, для реализации этого. Private Type...

Как дождаться завершения потока?
void Thread(void* pParam); void main(){ _beginthread(Thread, 0, NULL);//Запускаем поток, он выполняет свои задачи.... //Тут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru