Hilfethema : PureBasic - Process

Anfängerfragen zum Programmieren mit PureBasic.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Bei mir ist Childprocess.exe zwar schon beendet aber IsProgram(Handle) wird nie 0...
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Andreas_S hat geschrieben:Bei mir ist Childprocess.exe zwar schon beendet aber der Handle wird nie 0...
IsProgram -> ProgramRunning

Guck einfach in der Hilfe unter RunProgram, da ist ein Beispiel.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Oh, Danke!
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Irgendwie hab ich ne Denkblockade, ich check nich wie ich was an den Childprocess schick um es dort zu verarbeiten...
(\/) (°,,,°) (\/)
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Code: Alles auswählen

WriteProgramString(), WriteProgramStringN(), WriteProgramData()
... und zum empfangen halt

Code: Alles auswählen

Input(), Inkey()
MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Childprocess.exe:

Code: Alles auswählen

OpenConsole()

PrintN("Hallo, ich bin der Childprocess.exe")

ClearConsole()

*Puffer = AllocateMemory(1000)

While Not ReadConsoleData(*Puffer, 1000)
	Delay(10)
Wend

MessageRequester("Message", PeekS(*Puffer))

CloseConsole()
test Code:

Code: Alles auswählen

EnableExplicit
Define hProcess.l

OpenConsole()

hProcess = RunProgram(OpenFileRequester("","","",0), "", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write | #PB_Program_Hide)

While ProgramRunning(hProcess)
  If AvailableProgramOutput(hProcess)
    PrintN("Childprocess.exe: " + ReadProgramString(hProcess))
    WriteProgramString(hProcess, "Hello Too!")
  Else
    Delay(1) 
  EndIf
Wend
PrintN("ChildProcess.exe wurde beendet")
Input()
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Ah, jetz hats geschnackelt^^
thx für die Geduld *g*
(\/) (°,,,°) (\/)
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Ach ja ... Read/WriteConsoleData() gibs ja auch noch -.-
... aber für Strings eignet sich Input() und Print()/ PrintN() besser. Also
wäre das für Childprocess.exe:

Code: Alles auswählen

OpenConsole() 

PrintN("Hallo, ich bin der Childprocess.exe") 
MessageRequester("Message", Input()) 

CloseConsole()
Und dabei ist noch an zu merken, das Input() #PB_Input_Eof zurück gibt,
fals das Hauptprogramm vorzeitig beendet wird. Damit kann man sicher
stellen, dass der Childprocess nicht weiter läuft, wenn das
Hauptprogramm längst beendet wurde. (seis auch nur wegen Absturz)

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

PMV hat geschrieben:Und dabei ist noch an zu merken, das Input() #PB_Input_Eof zurück gibt, falls das Hauptprogramm vorzeitig beendet wird...
Jo ich hab mich vorhin schon gewundert was da dann plötzlich für eine Flut an undarstellbaren Zeichen kam ^^
(\/) (°,,,°) (\/)
Antworten