Autore Topic: [Risolto] Programma che porta nel "marsupio" un altro programma Gambas  (Letto 559 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.331
  • Ne mors quidem nos iunget
    • Mostra profilo
...il mio intento sarebbe quello di inserire nella cartella "Progetti" di un programma Gambas (che per comodità chiameremo: 1)  l'eseguibile di un'altro programma Gambas (che per comodità chiameremo: 2). Successivamente, lanciato il programma 1, esso dovrebbe copiare il programma eseguibile Gambas 2 - che porta in sé - in una (qualsiasi) directory indicata nel codice. Il codice del programma 1, poi, lancerebbe  con un comando Shell questo programma Gambas 2.

Ho effettuato qualche prova pratica:

1) Ho inserito manualmente nella cartella .hidden del sorgente del programma gambas 1 l'eseguibile del secondo programma. L'ho fatto copiare in una directory mediante il comando: Shell cp ......., ed ho da codice fatto in modo da lanciarlo sempre mediante il comando Shell. Ebbene, tale eseguibile è stato regolarmente lanciato da quello principale.

2) Ho provato poi a copiare in una directory quel medesimo programma eseguibile, non più con Shell cp ......., bensì mediante la funzione "copy" di Gambas.
Ebbene, in questo caso il tentativo di lancio (sempre mediante Shell) del programma 2 ha avuto esito negativo, e nella console ho ottenuto l'avviso:
/bin/sh: /home/vuott/programma_2.gambas: Permission denied.
Sono andato nella directory a tentare il lancio del programma Gambas 2 direttamente, ma ho ottenuto una finestra con un avviso, secondo il quale non ci sarebbe nel sistema un'applicazione adatta per il funzionamento di questo programma Gambas 2.  ???

3) Come terza prova ho inglobato nel sorgente del programma 1 (nella cartella "Progetto") il programma 2 utilizzando i passaggi previsti per l'inserimento nelle cartelle "Dati" e "Progetto" tramite tasto destro del mouse. Quindi la consueta copia in una directory prevista dal codice. Il successivo tentativo di lancio (sempre mediante Shell) del programma 2 ha avuto esito negativo, come al precedente punto 2, sia se la copia nella directory viene effettuata con "Shell cp.....", sia se si usa la funzione "copy" di Gambas.


Quindi soltanto la prima prova mi ha dato un risultato positivo. Ossia solo con questi passaggi:
* trascino con il mouse l'eseguibile del programma 2 nella cartella .hidden del mio sorgente principale;
* lanciato il programma principale, faccio copiare l'eseguibile mediante Shell cp ....... in una directory qualsiasi;
* il codice del programma principale lancia quell'eseguibile con Shell.


...perché negli altri casi non è stato possibile ?  :-\
« Ultima modifica: 28 Settembre 2012, 01:31:50 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.331
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Programma che porta nel "marsupio" un altro programma Gambas
« Risposta #1 il: 28 Settembre 2012, 01:31:03 »
...perché negli altri casi non è stato possibile ?
Riprendo questa discussione per segnalare che il problema e la relativa risposta/soluzione si trovano in quest'altra analoga discussione:
http://www.gambas-it.org/smf/index.php?topic=420.0
« Ultima modifica: 28 Settembre 2012, 12:13:06 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »