Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code stoppen bis Programm geladen

Code stoppen bis Programm geladen
24.07.2006 08:48:44
Nico
Hi @ll
ich habe ein kleines Problem bei meinem Makro:
Ich möchte Mozilla Thunderbird aus Excel starten und die aktuell geöffnete Datei anhängen. Das klappt auch soweit ganz gut. Problem ist nur, dass das eMail-Programm nicht immer schnellgenug gestartet wird. Jetzt möchte ich den Code um eine Art "Warte.bis.Thunderbird.fertig.ist"-Code erweitern.
Kann mir da jemand weiterhelfen?
Danke und Gruß
Nico

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code stoppen bis Programm geladen
24.07.2006 09:15:26
Matthias
Hallo Nico,
Wie öffnest du Thunderbird, mit Shell()?
Und wie schließt du es wieder?
Folgender Code (aus dem Netz) beinhaltet die ShellWait-PRozedur, sie wartet mit dem Code, bis das aufgerufene Programm beendet wurde:

Option Explicit
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 Long, _
ByVal ProcessId As Long) As Long
Public Function ShellWait(Exec As String, _
Optional WindowStyle As VbAppWinStyle = vbMinimizedFocus) _
As Long
Dim nTaskId As Long
Dim nHProcess As Long
Dim nExitCode As Long
Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400
nTaskId = Shell(Exec, WindowStyle)
nHProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, nTaskId)
Do
DoEvents
GetExitCodeProcess nHProcess, nExitCode
Loop While nExitCode = STILL_ACTIVE
CloseHandle nHProcess
ShellWait = nExitCode
End Function
Sub test()
ShellWait "command.com", vbNormalFocus
MsgBox "Fertig!"
End Sub

Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige