Se ho due diverse versioni dei processi JMP aperti contemporaneamente in Windows 10.
I:\00\jmp17\jmp.exe
I:\00\jmp16\jmp.exe
JMP 17 viene aperto per primo.
Come scrivere un'implementazione JSL in JMP 17 per eseguire un altro JSL sul computer in JMP 16 che è già aperto?
Nota Per accelerare la risposta, è necessario eseguire un altro JSL in JMP 16 già aperto
Questa schermata è di JMP 16 già aperto
Grazie!

Ci sono un paio di opzioni a cui posso pensare:
1. Usa Socket (controllalo da Scripting Index). Quindi, il tuo JMP17 parlerà con una porta e il tuo JMP16 ascolterà una porta e reagirà di conseguenza.
2. Utilizzare "Esegui programma" (controllarlo da Scripting Index). Per questo il JMP16 non conosce l'esistenza del JMP17.
Curioso, perché JMP17 e JMP16. Perché non JMP17 e JMP17? Sembra che ci sia qualche inconveniente che vuoi aggirare. Che cos'è?
Sì, spesso ho più processi JMP aperti contemporaneamente.
Usa JMP16 e 17 contemporaneamente. Semplifica il clic.
È più semplice ascoltare se entrambi i processi sono JMP 17?
Come implementarlo con JSL?
Ora sto utilizzando AutoHotkey per assistere nell'implementazione.
Grazie Esperti!
Non penso che ci sia nulla che ti impedisca di eseguire due o più JMP17 contemporaneamente, a parte i problemi di consumo delle risorse. Avere due JMP della stessa versione ti risparmia grattacapi dovuti a problemi di compatibilità imprevisti ma possibili.
Ecco un esempio basato sull'esempio di OSI > Socket > Listen.
Questo è lo script su JMP che ascolta:
skt = socket();
skt << bind( "localhost", "80" );
skt << ioctl( FIONBIO, 1 );
skt << listen();
while ( 1,
Wait( 1 );
rc = skt << accept();
If( Starts With( rc[2], "WOULDBLOCK" ),
Print( "no connect attempt yet" )
,
If( rc[2] == "ok",
remoteaddr = rc[3];
Write( "\!nConnection from ", remoteaddr );
conskt = rc[4];
rc = conskt << recv( 1000 );
show(rc);
msg = Blob To Char( rc[3], encoding= "utf-8" );
show(msg);
if (msg=="Stop Listening",
skt << close();
stop()
);
continue();
,
Show( rc );
skt << close();
stop();
)
);
);
Questo è lo script sul JMP che parla:
skt = socket();
skt << connect( "localhost", "80" );
skt << send(Char to Blob("Hello world!"));
skt << close();
skt = socket();
skt << connect( "localhost", "80" );
skt << send(Char to Blob("Stop Listening"));
skt << close();
Questo è un esempio dell'utilizzo del programma Esegui:
Save Text File( "$TEMP/listener.jsl", "\[Show("Hello World!")]\" );
Open("$TEMP/listener.jsl");
rp = Run Program(
Executable("...path to your \Jmp.exe"),
Options({"-FILE \!"" || substr(Get Path Variable( "TEMP" ),2) || "listener.jsl\!""});
);
rp << Is Read EOF;
wait(0);