🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.sys.next
2 messages
2 total messages Started by Carsten Lutz Tue, 13 Oct 1992 18:46
Terminal.app / IPC
#364
Author: Carsten Lutz
Date: Tue, 13 Oct 1992 18:46
58 lines
2755 bytes
Moin !

Da meine Fragen ja sehr beliebt zu sein scheinen ( wenn man aus der Zahl der
Followups darauf schliessen darf ;-) hier eine weitere:

Ich moechte unter OS 3.0 in einer meiner Apps erreichen, dass ( ohne Hilfe
durch den User ) Terminal.app dazu gebracht wird, ein neues Shell-Window
zu oeffnen und ein Kommando darin auszufuehren. In 2.1 war das nur durch
einen wirklich sehr ueblen Hack moeglich.

Unter 3.0 habe ich zwar eine saubere Loesung gefunden, aber sie gefaellt
mir nicht:

Ich habe im Terminal.App einen Terminal-Service angemeldet, der ein neues
Fenster oeffnet und dann mein Kommando ausfuehrt. Mit folgendem kurzen
Code-Segment kann ich dann das Kommando mit gewuenschten Args starten:

	id pasteboard;	

	pasteboard=[Pasteboard newName:NXGeneralPboard];
	
	[pasteboard declareTypes:&NXAsciiPboardType num:1 owner:self];
	[pasteboard writeType:NXAsciiPboard data:commandarg
						length:strlen(commandarg)];
	if(!NXPerformService(TALKSERVICE, pasteboard))
     		NXRunAlertPanel("IPC Failure", "Couldn't connect to Terminal-"
				"Application.","OK",0L,0L);

Das funktioniert und ist ein sauberer Weg, aber es hat den Nachteil, dass der
User erst Terminal.app konfigurieren muss und ausserdem in den services-menu
einen Eintrag fuer meinen TALKSERVICE hat, der ja manuell nie gerufen werden
soll.

Das dazu, was ich habe. Nun dazu, was ich moechte. ;-) Meine Wunsch-
loesung waere es, Distributed Objects zu benutzen. Wozu gibbet die schliess-
lich in 3.0. Also zu einem root-Object ( das jetz nicht im Sinne von OOP
sondern der dist. Objects ) des Terminal.app eine Verbindung erzeugen und
dann einfach eine Message rueberschicken, in der das Kommando samt 
Argumenten steht, so ungefaehr wie folgendes:

id server;

server = [NXConnection connectToName:"terminalServer"];
[server startCommand:cmd withArgs:args inNewWindow:YES];

( Das ist alles fiktiv ). 

Gibt es so eine Moeglichkeit ? Bietet Terminal.app irgendwelche Distributed
Objects an ? Wie kann man das eigentlich generell fuer eine App rausfinden ?
Wenn ja, welche Objects sind das und welche Methods implementieren sie ?

viel fragend,
			Carsten

-- 
* Carsten Lutz, Rellingen, FRG / clu@malihh.hanse.de ( NeXTmail accepted )  *
*   Voice : +49 4101 512493  Fax: +49 4101 27757  Traily : +49 4101 22306   *
*   "Geh mir ein bischen aus der Sonne" - Diogenes                          *
Re: Terminal.app / IPC
#365
Author: Carsten Lutz
Date: Tue, 13 Oct 1992 20:17
15 lines
1139 bytes
In <Bw2pGr.44p@malihh.hanse.de> clu@malihh.hanse.de (Carsten Lutz) writes:
>Gibt es so eine Moeglichkeit ? Bietet Terminal.app irgendwelche Distributed
>Objects an ? Wie kann man das eigentlich generell fuer eine App rausfinden ?
>Wenn ja, welche Objects sind das und welche Methods implementieren sie ?
Irgendwo muss es so eine Moeglichkeit geben, denn der ProjektBuilder macht
ja genau das was ich moechte, wenn man den Button "Debug" anclickt ( grade
erst bemerkt ). Fragt sich nur wie...

gruessend,
		Carsten

-- 
* Carsten Lutz, Rellingen, FRG / clu@malihh.hanse.de ( NeXTmail accepted )  *
*   Voice : +49 4101 512493  Fax: +49 4101 27757  Traily : +49 4101 22306   *
*   "Geh mir ein bischen aus der Sonne" - Diogenes                          *
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads