Si j'ai deux versions différentes de processus JMP ouvertes en même temps dans Windows 10.
I:\00\jmp17\jmp.exe
I:\00\jmp16\jmp.exe
JMP 17 est ouvert en premier.
Comment écrire une implémentation JSL dans JMP 17 pour exécuter un autre JSL sur un ordinateur dans JMP 16 déjà ouvert ?
Remarque Pour accélérer la réponse, il est nécessaire d'exécuter un autre JSL dans JMP 16 déjà ouvert
Cette capture d'écran est de JMP 16 déjà ouvert
Merci!

Il y a quelques options auxquelles je peux penser :
1. Utilisez Socket (consultez-le dans Scripting Index). Ainsi, votre JMP17 parlera à un port et votre JMP16 écoutera un port et réagira en conséquence.
2. Utilisez "Exécuter le programme" (consultez-le dans l'index des scripts). Pour cela, le JMP16 ne connaît pas l'existence du JMP17.
Curieux de savoir pourquoi JMP17 et JMP16. Pourquoi pas JMP17 et JMP17 ? On dirait qu'il y a des inconvénients que vous souhaitez contourner. Qu'est-ce que c'est?
Oui, j'ai souvent plusieurs processus JMP ouverts en même temps.
Utilisez JMP16 et 17 simultanément. Cela facilite le clic.
Est-il plus facile d'écouter si les deux processus sont JMP 17 ?
Comment l'implémenter avec JSL ?
J'utilise maintenant AutoHotkey pour aider à la mise en œuvre.
Merci les experts !
Je ne pense pas que quoi que ce soit vous empêche d'exécuter deux ou plusieurs JMP17 en même temps, autres que les problèmes de consommation de ressources. Avoir deux JMP de la même version vous évite des maux de tête liés à des problèmes de compatibilité inattendus mais possibles.
Voici un exemple basé sur l'exemple de OSI > Socket > Listen.
Voici le script sur le JMP qui écoute :
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();
)
);
);
Voici le script sur le JMP qui parle :
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();
Ceci est un exemple utilisant Run Program :
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);