RunShell()

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
xellos
Rookie
Rookie
Beiträge: 19
Registriert: So, 10. Sep 2006 18:57
Wohnort: Maintal

RunShell()

Beitrag von xellos »

Hallo,
gibt es die Möglichkeit ein Programm mit RunShell() auszuführen ohne dass das Fenster des Befehlsprozessors sichtbar ist (auch nicht in der Taskleiste).

Ich verwende im Moment folgende Befehlssequenz:

cBefehl := "/c \\caratfile\cwas.exe"
nOK := RunShell( cBefehl,,.t.,.t. )

Vielen Dank
Timo[/code]
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Code: Alles auswählen

RunShell(cParameter,cExeFile,.F.,.T.)
Herzlich,
Tom
Gast

Re: RunShell()

Beitrag von Gast »

hi,
xellos hat geschrieben: gibt es die Möglichkeit ein Programm mit RunShell() auszuführen ohne dass das Fenster des Befehlsprozessors sichtbar ist (auch nicht in der Taskleiste).

Ich verwende im Moment folgende Befehlssequenz:

Code: Alles auswählen

cBefehl := "/c \\caratfile\cwas.exe"
nOK     := RunShell( cBefehl,,.t.,.t. )
Ich musste mich auch gerade mal wieder mit Runshell beschäftigen
und folgendes feststellen :

Code: Alles auswählen

 ? RunShell( "/C START EXPLORER.EXE ." ) 
das schlechtest Beispiel um Runshell zu erklären da
a.) "Exploarer" verwendet wurde, welches aber als "Shell" wirkt
b.) "/C" sowie "START", Erkläreung später
c.) Parameter "." sollte man so nicht setzen.

Code: Alles auswählen

      RunShell("/C C:\WINDOWS\PROGMAN.EXE", , .T.)   // async
und schon wieder haben wir ein "/C" ...

Code: Alles auswählen

      RunShell("","C:\WINDOWS\PROGMAN.EXE", .T.)    // async
macht nun genau das selbe aber es fehlt das "/C".

Der Unterschied ist nun das man "/C" verwenden MUSS wenn man
es als 1st. Parameter verwenden und nicht wie es "sein sollte" als
2st. Parameter.

Deshalb finde ich auch das "Explorer" Beispiel für zu kompliziert den
da steckt ja auch noch ein "START" drin. Dieser dient aber nur dazu
den Parameter "." zu übergeben (s.h. "Help Start" )

So lange man also 32-bit Applicationen mit RunShell aufrufen will
braucht man weder "/C" noch "START". Mit fällt z.Z. nur BAT Files
und "DOS Command" ein welches "/C" braucht.

Nun ist es zwar schön das es mit dem Beispiel funktioniert aber dann
nicht mit myApplication ... :(

folgendes könnte helfen :
1.) vollen Path mit angeben
2.) als 1st. Parameter "." angeben auch wenn die Application keinen
Parameter erwartet.

sollte jemand jetzt noch Probelme mit "async = .F." haben soll er sich
den Thread hier in Forum ansehen und eine Thread mit RunShell verwenden.

gruss by OHR
Jimmy
Antworten