DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > Programm aus einem anderen Programm starten | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2002-07-05, 13:10 h Buzzy Posts: 102 User |
Hi! Um aus einem Programm ein anderes zu starten, habe ich ich bis jetzt immer den Befehl Execute(Programmname, NULL, NULL) verwendet. Jetzt ist mir aufgefallen, dass Execute() erst dann einen Wert zurückgibt wenn man das neue Programm beendet und deshalb das ursprüngliche Programm solange blockiert. Wie stelle ich es an, dass die beiden unabhängig voneinander laufen und das eine das andere nicht blockiert?( MfG Dennis [ - Answer - Quote - Direct link - ] |
2002-07-05, 13:26 h thomas Posts: 7718 User |
Wie wär's mit Execute("run programmname",NULL,NULL) ? Lies dir auch mal die Autodocs zu Execute() durch. NULL,NULL darf man glaube ich nicht machen (weiß ich aber nicht mehr). Ab OS2.0 solltest du lieber System() benutzen. Da kannst du die Funktion von RUN auch als Option angeben. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2002-07-05, 14:56 h Michael_Mann Posts: 1012 User |
Falls es der Execute-Befehl von DOS (2.0+) ist: BOOL success = Execute(APTR commandstring, BPTR input, BPTR output) commandstring = CLI-Befehlszeile. Wenn der Befehl einen RUN-Befehl enthält, startet ein eigener Prozeß. input sollte auf NULL gesetzt sein wenn nach der Programmausführung keine weiteren Instruktionen aus dem Kanal verarbeitet werden sollen. Output=0 Ausgabe im aktuellen Fenster. Input + Output = BPTR auf FileHandles success=NULL: Fehler bei der Ausführung des execute-Befehls. Michael [ Dieser Beitrag wurde von Michael_Mann am 05.07.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-07-05, 16:21 h Kronos Posts: 1168 User |
Hi Buzzy Hab grad mal in meinen alten "Intern" nachgeschaut, und das dürfte die "sauberste" Methode sein: segment = LoadSeg(name); prozzes = GreateProc(name,pri,segment,stackgroesse); Hat den Vorteil das du gleich Zugriff auf den Prozzes hast, und das du nicht erst den Umweg über "c:run" gehst. MfG Kronos -- Only the good die young all the evil seem to live forever [ - Answer - Quote - Direct link - ] |
2002-07-05, 19:41 h DariusBrewka Posts: 899 [Banned user] |
Falls du ein WB Programm starten möchtest und >=OS3.5 benutzt, kannst du auch den OpenWorkbechObjectA Befehl der workbench.library benutzen. Gruss [ - Answer - Quote - Direct link - ] |
2002-07-05, 20:24 h Michael_Mann Posts: 1012 User |
Ich wage es doch mal ;-): Also wenn ein Programm über LoadSeg, CrateProc gestartet wird so sollte man abschließend aber auch ein UnLoadSeg aufrufen: (BOOL) success=UnLoadSeg((BPTR)seglist) success=NULL: Fehler oder seglist=0 Michael [ - Answer - Quote - Direct link - ] |
2002-07-06, 02:00 h Kronos Posts: 1168 User |
Zitat: Wenn das Programm auf normalen Weg beendet werden soll und kann, ist UnLoadSeg() nicht nötig, da es sich dann selber aus dem System nimmt. Wäre also nur für Plug-Ins oder ähnliches sinnvoll. MfG Kronos -- Only the good die young all the evil seem to live forever [ - Answer - Quote - Direct link - ] |
2002-07-16, 12:02 h Solar Posts: 3680 User |
ANSI's Rache: #include <stdlib.h> system("Kommandozeile"); ... [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Programm aus einem anderen Programm starten | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |