auf Shell warten???

21. Januar 2008 18:55

Hallo,

folgendes Problem ich habe in 4.00 eine Tabelle angelegt in der ich Dateianhänge verwalte, diese müssen geöffnet und verändert werden können.
Das funktioniert schon, nur leider nicht so toll, und zwar habe ich keine Möglichkeit gefunden auf den Shell-Befehl zu warten:

Bsp.

Shell('c:\windows\explorer.exe','test.txt')

Sobald er den Texteditor geöffnet hat läuft er weiter, was er nicht soll????

Habe auch mit den Returnvalue schon geäarteitet, sobald er das Programm gestartet hat, gibt er einen Wert zurück.

Das ist aber nicht das was ich brauche und zwar verändere ich jetzt die Datei und möchte diese mit schließen zurückschreiben??

Mit WSH-Shell ist das selbe Problem??

Denn

21. Januar 2008 21:21

Also im Falle von SHELL sollte die Verwendung des "ReturnCode" schon für ein sog. "Modal Run" sorgen ...

SHELL
Use this function to execute external programs and operating system commands from C/AL programs. You can run this function modally or non-modally, depending on whether or not you include the return value from the external program in your code.

[ReturnCode]:= SHELL(Name [, Param, ...])
ReturnCode

Data type: integer

ReturnCode is used for two different purposes:

First, if ReturnCode is used, the external program will be run modally, while it will be run non-modally if ReturnCode is not used. For instance, if you want to go to the operating system and get a directory listing and then bring that information back into the system, include ReturnCode. Omit ReturnCode if you want to run the external program non-modally. For instance, if all you want to do is pass information (such as a name and address) to a standardized letter that is set up in a word processor, you would omit the ReturnCode.

Second, ReturnCode can contain the return value of the external program. Since external programs can return different codes to reflect whether errors occurred during the execution of the program, the values stored in ReturnCode depend on the external program.


Wenn "Windows Script Host" verwendet wird, dann kann der Methode "Run" der Parameter "WaitOnReturn" mitgegeben werden:

Code:
[INT Run :=] wsh.Run(BSTR Command[, VAR VARIANT WindowStyle][, VAR VARIANT WaitOnReturn])

21. Januar 2008 22:06

das klappt nicht weil das programm schon gestartet und ausgeführt ist.

22. Januar 2008 10:10

Hallo,

eine Möglichkeit die mir auf die schnelle einfällt wäre der Befehl "SLEEP(Duration in Milliseconds)".

Was in deinem Fall aber sicher nicht die Lösung ist da du die Dateien ja bearbeiten willst. Aber du kannst damit zumindest steuern wielange das Programm zeit hat eine Aufgabe zu erledigen bis sich Navision wieder zurückmeldet.

Andi