powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запуск приложения и получение его pID или hProcess
5 сообщений из 5, страница 1 из 1
запуск приложения и получение его pID или hProcess
    #36350834
Фотография Mr.Power
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как такое реализовать?
бэсиковский shell не подходит. Он ждёт пока прога выполнится,а этого мне не надо
...
Рейтинг: 0 / 0
запуск приложения и получение его pID или hProcess
    #36350902
Mr.Power,

ошибаетесь, Shell не ждёт.
...
Рейтинг: 0 / 0
запуск приложения и получение его pID или hProcess
    #36350936
... и возвращает как раз ProcessId. Дальнейшее обращение к OpenProcess() позволяет получить hProcess.
...
Рейтинг: 0 / 0
запуск приложения и получение его pID или hProcess
    #36352254
Фотография Mr.Power
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13-й квартал... и возвращает как раз ProcessId. Дальнейшее обращение к OpenProcess() позволяет получить hProcess.
тогда чем объяснить то что при Шеле отрисовка в форме первого приложения пропадает?

строение процедиры примено такое


d=shell

do while exit=false
doevents
sleep(10)
loop

terminateprocess(openprocess(d))

Ну это образно
...
Рейтинг: 0 / 0
запуск приложения и получение его pID или hProcess
    #36354989
Mr.Power,

структурно вроде верно. ИщИте, кто блокирует выполнение в реальном коде (это может делать WaitForSingleObject() с большим периодом ожидания, например). Можно вставить отладочную печать и посмотреть, что получается. У меня, для примера, длительный процесс архивации не замораживает пользовательский интерфейс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 Dim lProcessId As Long
 Dim fExit As Boolean
 lProcessId = Shell("""C:\Program Files\WinRar\WinRar.Exe"" A -m5 -ibck C:\Temp\BF.rar C:\Temp\BigFile.iso", vbHide)
 Debug.Print Timer, "Процесс " & lProcessId & " стартовал."
 Do
    Sleep  100 
    Label1.Caption = Time 'метка-секундомер
    Debug.Print Timer, "Процесс " & lProcessId & " продолжается."
    DoEvents
    'fStopByUser = ...
    'fProcessComplete = ...
    fExit = fStopByUser Or fProcessComplete
 Loop Until fExit
 '...
На всякий случай, в MSDN Library есть несколько статей, подобных Q178116 , где вместо Shell() используется CreateProcess(), но сути это не меняет.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запуск приложения и получение его pID или hProcess
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]