Hallo an alle. Kennt jemand eine Möglichkeit in Excel VBA einen Hintergrundprozess auszuführen? Ich habe „Game of Life“ geschrieben, läuft super. Leider Stockt es ohne Ende. Kann mir jemand vielleicht einen Beispiel von einem „Backgroundworker“ in VBA posten. Es würde mich wirklich freuen.
Hallo Eugen,
sorry, das geht über meine Kenntnisse hinaus.
Hier wurde, glaube ich eine ähnliche Frage gepostet: http://forums.devx.com/showthread.php?t=77964
Viele Grüsse und viel Erfolg
MwieMichel
Hallo,
ich weiß nicht, ob ich das Problem richtig verstanden habe, anbei ein Beispiel zum Start eines Prozesses mit Warten auf dessen Ende, vielleicht hilft das?
Private Declare Function CloseHandle Lib „kernel32“ ( _
ByVal hObject As Long) As Long
Private Declare Function GetExitCodeProcess Lib „kernel32“ ( _
ByVal hProcess As Long, ExitCode As Long) As Long
Private Declare Function OpenProcess Lib „kernel32“ ( _
ByVal DesiredAccess As Long, ByVal InheritHandle As Boolean, _
ByVal ProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib „kernel32“ ( _
ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Public Function Shell_Wait_E(Exec As String) As Long
’
’ Warten auf das endgültige Ende eines Prozesses
’ Exec ist der auszuführende Prozess
’
Const INFINITE As Long = -1& ’ ewig lang
Dim ntaskid As Long
Dim nHProcess As Long
ntaskid = Shell(Exec, vbNormalFocus)
nHProcess = OpenProcess(SYNCHRONIZE, False, ntaskid)
Shell_Wait_E = WaitForSingleObject(nHProcess, INFINITE)
CloseHandle nHProcess
End Function
Viel Erfolg
Rainer