ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Programm aus einem anderen Programm starten | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
05.07.2002, 13:10 Uhr Buzzy Posts: 102 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
05.07.2002, 13:26 Uhr thomas Posts: 7718 Nutzer |
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/ [ - Antworten - Zitieren - Direktlink - ] |
05.07.2002, 14:56 Uhr Michael_Mann Posts: 1012 Nutzer |
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. ] [ - Antworten - Zitieren - Direktlink - ] |
05.07.2002, 16:21 Uhr Kronos Posts: 1168 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
05.07.2002, 19:41 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Falls du ein WB Programm starten möchtest und >=OS3.5 benutzt, kannst du auch den OpenWorkbechObjectA Befehl der workbench.library benutzen. Gruss [ - Antworten - Zitieren - Direktlink - ] |
05.07.2002, 20:24 Uhr Michael_Mann Posts: 1012 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
06.07.2002, 02:00 Uhr Kronos Posts: 1168 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
16.07.2002, 12:02 Uhr Solar Posts: 3680 Nutzer |
ANSI's Rache: #include <stdlib.h> system("Kommandozeile"); ... [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Programm aus einem anderen Programm starten | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |