Questo esempio usa Eseguire il programma per leggere il registro di Windows per ottenere i file nell'elenco dei file recenti di JMP.
temp=runprogram(executable("reg"),options({"query","\["HKCU\Software\SAS Institute Inc.\JMP\Recent\Files"]\"}),readfunction("text"));
names = {};
// typical line: " File7 REG_SZ C:\Users\v1\Desktop\Nanami01.jrn"
patmatch(temp,patrepeat(patregex("\s+File\d+\s+REG_SZ\s+")+patbreak("\!n\!r")>>path+pattest(insertinto(names,path);1)));
show(names,nitems(names))nomi = {"F:\FileSnapper\Additional.jsl", "F:\FileSnapper\makeAddin.jsl", "F:\rectangula\virusmap3.jsl", "F:\rectangula\virusmap2.jsl", "F: \turtle\drawing.jmpprj", "F:\AVI\video.jmpprj", "C:\Users\v1\Desktop\Nanami01.jrn", "F:\chess\chessPlay.jsl", ...
IL patmatch la funzione salta il testo iniziale non corrispondente, quindi aggiunge i file a nomi finché lo schema si ripete. Se il registro contenesse altri valori (non so perché lo farebbe) potresti dover rendere il pattern più sofisticato per saltare le chiavi sconosciute e continuare.
L'esecuzione del comando reg query in una finestra di comando è simile a questa

funzione di lettura ("testo") restituisce lo stesso testo al file temp variabile.
Grazie! È più semplice di un altro approccio che ho provato che era più fragile.
Ho anche guardato File e cartelle recenti di Windows 10: indica l'elenco di file e cartelle "Accesso rapido" in uno script JSL?@Phil_Kay che mi ha avvicinato a informazioni simili, ma per i file .LNK che, in qualche modo , puntano ai file effettivi. Nel mio caso ho bisogno del percorso del file di destinazione e non so come ottenere il percorso da un .LNK usando JSL.
Bene, è molto bello e compatto.Ho potuto vedere che questo è utile nella creazione di una finestra di dialogo personalizzata per la selezione dei file.