RunProgramm - Hide - bei Programme mit Ausgabe?!

Anfängerfragen zum Programmieren mit PureBasic.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

RunProgramm - Hide - bei Programme mit Ausgabe?!

Beitrag von smateja »

Hallo zusammen, ich habe ein kleines Problem bei folgendem Code

Code: Alles auswählen

RunProgram(GetCurrentDirectory()+"webmin\apache\bin\apache-service-install.cmd", "", GetCurrentDirectory()+"webmin\apache\bin\", #PB_Program_Hide)
er ezigt mir torztdem die Konsole an - wahrscheinlich weil ich eine .cmd aufrufe die wiederrum dann erst den Dienst installiert.

weiß jemand, pb es trotzdem eine möglichkeit gibt hier die ausgabe von der Dienstinstallion zu unterdrücken !?


Nachtrag:

Alternativ wäre mir auch geholfen wenn ich einfach nur "apache -k install -n HSS_Webmin" das via runprogramm ausführen könnte - wobei ich das bislang so nicht geschafft habe - dadurch eben der Behelf mit der Batch bzw .cmd - Datei.
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: RunProgramm - Hide - bei Programme mit Ausgabe?!

Beitrag von Kiffi »

Hallo smateja.

evtl. gibt's bei dem Apache-Installer einen Schalter, den Du zusätzlich setzen
kannst (sowas wie QUIET, oder ähnlich)?

Grüße ... Kiffi
a²+b²=mc²
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

re:

Beitrag von smateja »

*G sind doch immer die gleichen die prompt ne idee posten ;)

erstmal danke kiffi - aber nein so n Schalter gibts leider nicht für den apachen. Aber der Ansatz war gut.
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hi smateja,
ich glaube das könnte dir weiterhelfen.

Mit diesen beispiel kannst du ausführbare programme oder jobs Dateien ausführen

und ausgabe + returncode abfangen.


Code: Alles auswählen

Procedure.l run_commander(prog.s)
  run_cmd = RunProgram("cmd.exe", "/c "+prog, "", #PB_Program_Hide |#PB_Program_Open|#PB_Program_Read|#PB_Program_Write  |#PB_Program_Error)
  ProcedureReturn run_cmd
EndProcedure 



app=run_commander(GetCurrentDirectory()+"apache -k install -n HSS_Webmin")
;app=run_commander(GetCurrentDirectory()+"webmin\apache\bin\apache-service-install.cmd")
 If app
    While ProgramRunning(app) 
      test.s= ReadProgramString(app) 
      Debug test
    Wend
  EndIf
  ExitCode = ProgramExitCode(app) 
  Debug "exitcode: " +Str(ExitCode)
  CloseProgram(app)
getcurrentdirectory() würde ich nur verwenden wenn sichergestellt ist das

dein programm auch im gleichen verzeichnis der zu asführende anwendung liegt.

Ciao
jpd
PB 5.10 Windows 7 x64
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

jpd hat geschrieben: getcurrentdirectory() würde ich nur verwenden wenn sichergestellt ist das

dein programm auch im gleichen verzeichnis der zu asführende anwendung liegt.

Ciao
jpd
Nicht nur das, das CurrentDirectory wird nicht immer auf den Pfad der Exe
gesetzt, zum Beispiel beim Aufruf per Verknüpfung, wo der Eintrag: Ausführen in leer ist.

Code: Alles auswählen

GetPathPart(ProgramFilename())
ist besser geeignet, wobei in der IDE dieser Pfad auch nicht korrekt ist,
sondern nur bei der eigentlichen Exe. Dafür gibts hier aber genug Beispiele,
wo man sieht wie man das umgeht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten