Seite 1 von 2

Komunikation mit anderen Programmen (Process-Library)

Verfasst: 16.01.2012 16:52
von Abraham0607
Hi,

ich hab versucht was mit der "Process"-Library zu machen, aber das klappt irgendwie nicht...
Kann mir jemand sagen was ich falsch gemacht habe?

Code: Alles auswählen

program=RunProgram("C:\windows\system32\cmd.exe","","",#PB_Program_Open | #PB_Program_Read | #PB_Program_Write)
If AvailableProgramOutput(program)
  WriteProgramStringN(program,"cmd")
  Delay(2000)
EndIf
End
Schon mal im Vorraus

Danke

Antwort?

Verfasst: 19.01.2012 17:43
von Abraham0607
Will mir denn wirklich keiner helfen?

Re: Komunikation mit anderen Programmen (Process-Library)

Verfasst: 19.01.2012 18:47
von ts-soft
AvailableProgramOutput() ist schon mal total verkehrt, da solltest Du in der Hilfe nochmal nachlesen.
Feste Pfade sollte man auch nicht verwenden, siehe folgendes Beispiel.
Ausserdem sollte man so geöffnete Programme auch immer schliessen, ansonsten bleibt Müll im Speicher.
EnabelExplicit möchte ich Dir auch ans Herz legen, auch wenn das in diesem Falle nicht geholfen hätte.

Code: Alles auswählen

EnableExplicit

Define program = RunProgram(GetEnvironmentVariable("COMSPEC"), "", "",#PB_Program_Open | #PB_Program_Read | #PB_Program_Write)
If ProgramRunning(program)
  WriteProgramStringN(program, "cmd")
  Delay(2000)
EndIf
CloseProgram(program)
End
Gruß
Thomas

Re: Komunikation mit anderen Programmen (Process-Library)

Verfasst: 19.01.2012 18:51
von NicTheQuick
Dein Beispiel macht so keinen Sinn. Was willst du eigentlich tun? Vermutlich kann man dein Problem besser lösen, wenn du sagst, was du genau vor hast.

Re: Komunikation mit anderen Programmen (Process-Library)

Verfasst: 19.01.2012 19:22
von Abraham0607
was macht denn GetEnvironmentVariable()? aus der hilfe werd' ich nicht schlau

Re: Komunikation mit anderen Programmen (Process-Library)

Verfasst: 19.01.2012 19:28
von ts-soft
Es gibt unter Windows (unter Linux auch) sogenannte Umgebungsvariablen, die kann man damit auslesen.
Es gibt noch viele andere Möglichkeiten Pfade zu ermitteln, aber in diesem Falle ist dieses Vorgehen das beste. Jedenfalls sind
fixe Pfade unbedingt zu vermeiden, nicht jedes "Windows"-Verzeichnis heißt auch "Windows" :wink:

Re: Komunikation mit anderen Programmen (Process-Library)

Verfasst: 19.01.2012 19:28
von RSBasic
Er liest die Umgebungsvariable aus, die von Programmen und von Windows bereitgestellt werden. Beispielsweise mit "appdata" bekommst du den Pfad zum Anwendungsdaten-Verzeichnis, um beispielsweise deine eigenen Einstellungen dort speichern zu können. Sonst weißt du nicht, wohin du überhaupt deine Einstellungen speichern kannst. Deshalb gibt es Umgebungsvariablen. Und mit "comspec" bekommst du den Pfad zur Konsolen-Anwendung "cmd.exe".

Re: Komunikation mit anderen Programmen (Process-Library)

Verfasst: 19.01.2012 19:30
von ts-soft
RSBasic hat geschrieben:Und mit "comspec" bekommst du den Pfad zur Konsolen-Anwendung "cmd.exe".
Oder zu command.com, wenn das OS bereits etwas älter ist :mrgreen:

Re: Komunikation mit anderen Programmen (Process-Library)

Verfasst: 19.01.2012 20:23
von Abraham0607
danke für die hilfe leute!!!

abraham

Re: Komunikation mit anderen Programmen (Process-Library)

Verfasst: 20.01.2012 16:24
von Abraham0607
wenn ich jetzt mit GetEnvironmentVariable() eine batch ausführen möchte ("start.bat").
Was muss ich dann in die klammern schreiben?