Anti-FAQ: Jak zrobić Shell synchroniczny?
Sposób podał Mr. Christie w grupie dyskusyjnej pl.comp.bazy-danych.msaccess.
Poniżej cytuję autorski tekst w całości:
Witam :)
przyklad byl juz na grupie ale jestem swiezo po walce w ktorej musialem
troche inaczej to rozwiazac.
ale do rzeczy: jezeli kogos to zainteresuje (i moze bedzie mial jakies
uwagi), zamieszczam niewielki kawalem kodu (Jedna deklaracja api, 6 linijek
kodu.) dzieki ktoremu mozna wywolac shella synchronicznie.
Idea jest prosta: wywolujemy funkcje, wywolujemy w niej shella, shell (jesli
operacja sie powiedzie) zwraca numer procesu w systemie. sprawdzamy czy
proces o danym numerze nadal istnieje, gdy przestaje istniec konczymy
funkcje.
'********
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Function kpfSyncShell(sFileName)
On Error Resume Next
Dim lRet As Long
lRet = Shell(sFileName, 0)
Do While OpenProcess(1, 0, lRet) <> 0
DoEvents
Loop
End Function
'********
pozdro :))
--
Christie/_Xtian_ (-:
_