Wann ist ein mit Shell gestartetes Programm beendet ?

21/03/2010 - 10:56 von Kowalski | Report spam
Hi,

mit dem folgenden Codeausschnitt verkleinere ich Bilder mittels Irfanview
und Kommandozeilenparametern. Der Code funktioniert auch. Ich bin mir aber
nicht sicher ob er auf jedem Rechner funktioniert, denn normalerweise müsste
man doch vor dem Aufruf von Irfanview mittels shell prüfen, ob der zuvor
gestartete Prozess schon beendet ist. Gibt es da eine zuverlàssige Methode,
oder kann man den Code so belassen ?

Hier der Codeausschnitt:
For Bi = 1 To AnzB
If Dir(lbQuelle & "\Originalbilder", vbDirectory) = "" Then MkDir
lbQuelle & "\Originalbilder"
Pm1$ = lbQuelle & "\" & Bilder(Bi).Pfad
Pm2$ = " /resize=(1600,0) /resample /aspectratio /jpgq= 80 /convert=" &
ActiveDocument.Path & "\VK" & Bilder(Bi).Pfad
Shell IrfanPfad$ & "\i_view32.exe " & Pm1$ & Pm2$
StatusBar = ActiveDocument.Path & "\" & Bilder(Bi).Pfad & " wird
konvertiert !"
FileCopy lbQuelle & "\" & Bilder(Bi).Pfad, lbQuelle &
"\Originalbilder\" & Bilder(Bi).Pfad
Kill lbQuelle & "\" & Bilder(Bi).Pfad
Bilder(Bi).Pfad = "VK" & Bilder(Bi).Pfad
Bilder(Bi).ControlTipText = Bilder(Bi).Pfad
Next Bi

Gruß und vielen Dank schon mal

Kowalski !
 

Lesen sie die antworten

#1 Reiner Wolff
21/03/2010 - 22:43 | Warnen spam
Moin Kowalski,

*Kowalski* schrieb:
mit dem folgenden Codeausschnitt verkleinere ich Bilder mittels Irfanview
und Kommandozeilenparametern. Der Code funktioniert auch. Ich bin mir aber
nicht sicher ob er auf jedem Rechner funktioniert, denn normalerweise müsste
man doch vor dem Aufruf von Irfanview mittels shell prüfen, ob der zuvor
gestartete Prozess schon beendet ist. Gibt es da eine zuverlàssige Methode,
oder kann man den Code so belassen ?



Gerade bei Schleifen würde ich immer darauf warten, dass der vorherige
Prozess beendet wurde.
Dazu musst Du die Shell synchron aufrufen (standard ist asynchron (Dein
restlicher Code làuft weiter)). Hierzu benutze ich die ShellX-Funktion:
http://vb-tec.de/xshell.htm

Gruß aus Kiel
Reiner
Treffen sich ein Kuhfladen und ein MS-DOS. Sagt das MS-DOS:
"Hallo, ich bin ein Betriebssystem, was bist'n du?".
Darauf der Kuhfladen:
"Wenn du'n Betriebssystem bist, bin ich 'ne Pizza!"

Ähnliche fragen