Lancio Programma Esterno da Web app

Sto cercando di gestire i Report su un Applicazione Web.
La mia idea e’ di crearli su un app Desktop che verra’ eseguita premendo un pulsante dall’app Web.

Tutto funziona perfettamente in Debug o se l’ app Web viene eseguita manualmente ( click su .exe e successivo collegamento tramite il browser)

Non funziona se l’ app Web viene eseguita tramite un servizio.
Il pgm desktop viene caricato in memoria (si vede nei dettagli della gestione attivita’) ma non compare lo schermo iniziale dell’app desktop .

Qualche idea su che cosa non va’.

Ecco il codice . Ho provato sia con SHELL (con e senza CMD o START) che con LaunchAndNotWait con lo stesso risultato.

'---------------------------------------------------------------------------
’ 3. Eseguo il Programma Report.exe
’ Con SHELL
’ Con LaunchAndNotWait

'tCom = “RunMe.cmd "
'tFile = GetFolderItem(”").Child(“Report”).child(tCom)

tFile1= GetFolderItem(“”).Child(“Report”)
tFile1 = tfile1.Child(“Report.exe”)

'archivobat= "CMD "+ tFile1.NativePath
'archivobat= "START "+ tFile1.NativePath
'archivobat= "START "+ tFile.ShellPath + tFile1.NativePath

archivobat= tFile1.NativePath

Dim s As new Shell
s.Mode = 0
s.Timeout = -1
s.Execute(archivobat)

'sExecute(tFile.NativePath)
's.execute(tFile1.NativePath)
s.close

'tIn = LaunchAndNotWait(tFile1)

Grazie

Io ho fatto cosi

Un db o tabella in cui inserisci una riga che indica cosa deve essere stampato (con flag che se a 1 dice xhe il file è stato prodotto)

L’ app destop che lavora costantemente e ogni 30 sec. Verifica se non ci sono nuove righe da elaborare e marca come elaborate quelle di cui ha prodotto la stampa …magari producendo un file pdf

L’ app web verifica se la riga e’ passata in elabotaro e poi scarica il file pdf prodotto

Buona idea , anche se non riesco a capire perche’ Shell e LaunchAndNotWait non debbano funzionare se l’App web e’ eseguita come servizio.
Nel forum non ho trovato segnalazioni su questo problema, quindi suppongo debbano funzionare.

Grazie per il suggerimento

Probabilmente la webapp non puo eseguire altri eseguibili, potrebbe avere problemi con i permessi di eseguire attività nella shell
Io negli esempi ho sempre visto usare la shell nelle app desktop
Considera che un app web mi pare sia monothread il che , se usi la shell con il wait, bloccherebbe l’ attività della web app per qualunque client che ci sta lavorando o che si connettera’

Io ho seguito quello che è indicato in

e con LaunchAndNotWait non ci dovrebbero essere problemi.

Cesare

Hai provato a cambiare l’ utente con cui esegui il servizio/webapp ?

Si ho anche controllato le autorizzazioni di sicurezza sulle cartella dove c’e’ il pgm Desktop.

lo strano e’ che se disattivo il servizio e lancio la web app manualmente tutto funziona alla grande , anche la possibilita’ di aprire piu’ sessioni contemporaneamente.
Sto provando a cambiare i parametri per creare il servizio, per vedere se cambia qualche cosa.

Ciao,

te la butto li. Hai provato a farlo con Javascript? Inserisci in pagina uno script JS che utilizza
ActiveXObject. Dovresti poter aprire la tua Applicazione Desktop.

Non ho molta esperieza con js mo ci provo .

Grazie

Ij Xojo utilizzata il metodno ExecuteJavascript, cerca pure nella Documentazione, prende in ingresso una stringa, per l’appunto la tua funziona javascript.

E per Javascript cerca la funziona ActiveXObject per aprire un’applicazione Desktop.

Puoi anche utilizzare un protocollo definito dalla tua applicazione e lanciarla semplicemente come link (ci dovrebbero essere esempi su questo)

Alla fine ho seguito il suggerimento di un pgm residente che esamina il db e stampa il report quando e’ stata registrata la richiesta.

Leggendo la documentrazione ActiveXObject dovrebbe funzionare solo con IE e no con gli altri browser, quindi non potrei usarla nel mio caso.

Grazie per i Vs. suggerimenti

Cesare