| |
|
|
Clemens Meier | je suis derzeit à einer Internetanwendung tour, chez qui bestimmte Teile aussi la cousine64 kodiert/dekodiert volonté doit. cela Kodieren braucht toujours sa Zeit, besonders chez grand Fichiers. alors voudrais je cet Kodierung im Hintergrund courir laisser, so dass cela Hauptprogramm sans Problem weiterlaufen peux. Daher veux je volontiers une Hintergrundprozess starten.
Folgendes Szenarium: j'ai une tête.exe , un avec XProfan compiliertes Stück Programme ensuite habe je une la cousine64.prc . qui communication entre beiden soll via pipe.pcu stattfinden. Beim finissons de tête.exe soll aussi qui Hintergrundprozess finissez volonté (pas dass cela Ding comme corps d'un mort im grenier bleibt).
Soviel je sais, peux je cela la cousine64.prc comme paramètre de tête.exe starten. et là je ne...aucune la fenêtre generiere, erscheint es aussi nirgendwo, au maximum im Taskmanager comme Prozess. Richtig? Starte je es am Besten avec WinExec ... ? là bekomme je un Handle zurück et pourrait avec Destroy(&handle) den Prozess wieder stoppen. aussi richtig?
j'ai ici im Forum mais aussi autre Opportunités trouvé. Allerdings wurde là seulement jeweils une .exe gestartet, toujours sans paramètre. ensuite wurde dans einem anderen Fil erwähnt, dass es sous Win9X cela Aufrufen plusieurs Profanprogramme gleichzeitig trop Abstürzen führt. malheureusement wurde qui Diskussion là pas trop Ende geführt, so dass je pas sais, si es pour une Workaround gibt.
et letztes: probablement wird qui la cousine64.prc pas qui einzige Prozess rester. Gäbe es Probleme, si es plusieurs volonté?
Salut |
|
|
| |
|
|
|
| Hm ici habs la fois zusammengepinselt, cela sollte pour une erste orientation ausreichen: KompilierenMarqueSéparation {$cleq}
def $apptitle ClemensVorlage
cls
$U pipe.pcu = pipe.
$U thread.pcu = thread.
declare pipe&
if %parcount
encode
else
declare ex&
app
endif
pipe.close pipe&
end
proc app
print app
case pipe.is(myClemensPipe) : error Pipe already exists, abort.
pipe&:=pipe.create(myClemensPipe)
declare fle$
fle$:=dfokk.bmp
casenot fileexists(fle$) : error File +fle$+ doesnt exist, abort.
pipe.push pipe&,>+fle$
shell par$(0)+ -
thread.start 1,3
usermessages 1
whilenot ex&
waitinput
wend
thread.stop 1
print Tjoar fertig :P [taste]
waitkey
endproc
proc encode
print encoder
casenot pipe.is(myClemensPipe) : error Pipe doesnt exists, abort.
pipe&:=pipe.create(myClemensPipe)
declare fle$
fle$:=del$(pipe.pop(pipe&),1,1)
casenot fileexists(fle$) : error File +fle$+ doesnt exist, abort.
declare mem#,siz&
siz&:=filesize(fle$)
casenot siz& : error File +fle$+ is without content.
print File: +fle$
dim mem#,siz&
blockread(fle$,mem#,0,siz&)
declare i&,s$,c&
for i&:=0 to siz& do begin
c&+
s$:=s$+.hexx(byte(mem#,i&))
if c&>=512
c&:=0
pipe.push pipe&,<+s$
s$:=
endif
end
case len(s$) : pipe.push pipe&,<+s$
pipe.push pipe&,.//bye
proc .hexx
parameters b&
case b&<16 : return 0+hex$(b&)
return hex$(b&)
endproc
endproc
proc thread.do
parameters n&
declare s$
s$:=mid$(pipe.get(pipe&),1,1)
if n&==1
if (s$==<)
print pipe.pop(pipe&)
elseif (s$==.)
print done.
ex&+
sendmessage(%hwnd,1,0,0)
endif
endif
endproc
proc error
parameters s$
messagebox s$,$apptitle,0
end
endproc
cela Demo zeigt aussi, cela Du sehrwohl aussi mehere Prozesse charger peux, Du Dir ensuite mais aussi un eigenes Protokoll créer musst à Inputs trop koordinieren. |
|
|
| |
|
|
|
Clemens Meier | Que le Pipe c'est moi bien sûr et une Threadid ist pour cela Protokol avec den eigenständigen Prozessen reserviert. cet Prozesse devoir permanent im Hintergrund courir. Via Pipe et un Handle pro Prozess verläuft qui communication. Doch comment steht es avec den Prozessen selbst. Gibt es Probleme, si Je l' Prozess comment dessus angegeben aufrufe, alors plusieurs Profaninstanzen im grenier habe.
ou bien soll je plutôt sur une Aufruf comment sous [...] construire? là wird mais seulement une exe aufgerufen. je veux mais pas verschiedene exe anbieten, mais possible comme umbenannte prc-Fichiers,
alors: mon Hauptprogramm est programm.exe dans diesem Programme volonté deux Prozesse gestartet cela une hieß prozess1.prc et wurde zuvor umbenannt trop p1.ttt. cet soll avec programm.exe p1.ttt gestartet volonté cela zweite hieß prozess2.prc et wurde zuvor umbenannt trop p2.ttt. cet soll ensuite avec programm.exe p2.ttt gestartet volonté. Beide Prozesse avons ne...aucune eigenes la fenêtre, il y a alors aussi aucun Fehlermeldungen ou bien Messages. Alles wird via Protokol à cela Hauptprogramm gemeldet, so dass cet puis réagir peux, si nötig.
Gäbe es avec cela Probleme? Welches procéder ist pour den Aufruf qui PRC-Fichiers trop empfehlen? je hoffe, mon Problem ist maintenant bien sûr geworden (quand même merci iF) |
|
|
| |
|
|
|
|
Gibt es Probleme, si Je l' Prozess comment dessus angegeben aufrufe, alors plusieurs Profaninstanzen im grenier habe.
forfaitaire non.
Gäbe es avec cela Probleme?
forfaitaire non.
ou bien soll je plutôt sur une Aufruf comment sous...
Steht Dir libre.
Welches procéder ist pour den Aufruf qui PRC-Fichiers trop empfehlen?
Siehe Source.
PS: c'est unwichtig comment Votre Exen heissen, et wieviele exen (ou bien prcs) Du erstellst, et wieviele Prozesse courir. mon Source dessus demonstriert: une Exe, deux Prozesse, un Source. |
|
|
| |
|
|
|
Clemens Meier | mon Problem était wohl, dass je cela Fil [...] gelesen habe (System ou bien Programmabsturz, si plusieurs Profanprogramme courir). mais si Du mir maintenant erklärst, dass es là absolu aucun Probleme gibt, égal quelle Methode je verwende, ensuite werde je dir cela seulement einmal croyons. mais wehe, irgendein win95 / 98 User reißt mir den tête ab, ensuite besuche je toi |
|
|
| |
|
|