Как отследить завершение скрытой программы? - VB

Узнай цену своей работы

Формулировка задачи:

Na http://www.relib.com/topic.asp?id=704977&tp=1 estj primer, kak atsleditj zavershenie programmi, kotoraja sapushchena iz prilozhenija, i kotoraja vidna. Mozhno li zdelatj toze samoe, no chtob' prilozhenjie bilo HIDE. Tjipa abc=shell('asda.exe.', vbHide)

Решение задачи: «Как отследить завершение скрытой программы?»

textual
Листинг программы
  1. Const NORMAL_PRIORITY_CLASS = &H20&
  2. Const STARTF_USESHOWWINDOW = &H1
  3. Const SW_HIDE = 0
  4.  
  5. Type PROCESS_INFORMATION
  6.   hProcess As Long
  7.   hThread As Long
  8.   dwProcessId As Long
  9.   dwThreadId As Long
  10. End Type
  11.  
  12. Type STARTUPINFO
  13.   cb As Long
  14.   lpReserved As String
  15.   lpDesktop As String
  16.   lpTitle As String
  17.   dwX As Long
  18.   dwY As Long
  19.   dwXSize As Long
  20.   dwYSize As Long
  21.   dwXCountChars As Long
  22.   dwYCountChars As Long
  23.   dwFillAttribute As Long
  24.   dwFlags As Long
  25.   wShowWindow As Integer
  26.   cbReserved2 As Integer
  27.   lpReserved2 As Long
  28.   hStdInput As Long
  29.   hStdOutput As Long
  30.   hStdError As Long
  31. End Type
  32.  
  33. Declare Function CreateProcess Lib 'kernel32' Alias 'CreateProcessA' (ByVal lpApplicationName As Long, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long,
  34. ByVal lpThreadAttributes As Long,
  35. ByVal bInheritHandles As Long,
  36. ByVal dwCreationFlags As Long,
  37. ByVal lpEnvironment As Long,
  38. ByVal lpCurrentDriectory As Long,
  39. lpStartupInfo As STARTUPINFO,        lpProcessInformation As PROCESS_INFORMATION) As Long
  40.  
  41. Declare Function WaitForSingleObject Lib 'kernel32' (ByVal Handle As Long,        ByVal dwMilliseconds As Long) As Long
  42.  
  43. Declare Function CloseHandle Lib 'kernel32' (ByVal hObject As Long) As Long
  44.  
  45. Sum RunExtApp()
  46. Dim Proc As PROCESS_INFORMATION
  47. Dim Start As STARTUPINFO
  48. Dim f
  49.  
  50. Start.dwFlags = STARTF_USESHOWWINDOW
  51. Start.wShowWindow = SW_HIDE ' ВОТ ТО ЧТО ТЕБЕ НАДО
  52. Start.cb = Len(Start)
  53.  
  54. v = CreateProcess(0,'c: est.exe',0, 0, True, NORMAL_PRIORITY_CLASS, 0, 0, Start, Proc)
  55.  
  56. If v <> 0 Then
  57. v = CloseHandle(Proc.hThread)
  58.  
  59. do while WaitForSingleObject(Proc.hProcess, 0) = 258
  60. loop
  61.  
  62. v = CloseHandle(Proc.hProcess)
  63. end if
  64.  
  65. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы